回答編集履歴

1

まとめを回答に追記

2018/09/05 10:07

投稿

taka-saan
taka-saan

スコア665

test CHANGED
@@ -43,3 +43,51 @@
43
43
  データにゴミでも入っているんですかね?文字コードとか?
44
44
 
45
45
  PHP 5.4.16 で試しました。
46
+
47
+
48
+
49
+ ### 追記(まとめ)
50
+
51
+ つまりstr_getcsvを普通の使い方をして、
52
+
53
+
54
+
55
+ "デ"ータ1,データ2
56
+
57
+
58
+
59
+ こういうデータがあった時に
60
+
61
+ エンクロージャが外れて
62
+
63
+
64
+
65
+ データ1
66
+
67
+ データ2
68
+
69
+
70
+
71
+ こう解釈されるのはおかしいのでは?
72
+
73
+
74
+
75
+ という疑問ですよね。
76
+
77
+
78
+
79
+ 確かにおかしい気はしますが、おかしいのはデータであって、
80
+
81
+ ではどう解釈するのが正しいかというのも微妙で
82
+
83
+ csvのフォーマットは歴史的に方言が沢山あるのが実情ですから
84
+
85
+ 「PHPの実装はこういうものだ」と理解するのがよいかと個人的には思いました。
86
+
87
+
88
+
89
+ どうしてもこの余計な解釈を回避したい場合には、
90
+
91
+ データをcsvフォーマットとしてふさわしいものに修正変更するか、
92
+
93
+ getcsvをあきらめて自前でパースするしかなさそうです。