質問編集履歴
4
ささあ
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
phpのCSV読み込み時の文字化について
|
1
|
+
「修正」phpのCSV読み込み時の文字化について
|
body
CHANGED
File without changes
|
3
$rows
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
phpのCSV
|
1
|
+
phpのCSV読み込み時の文字化について
|
body
CHANGED
@@ -1,34 +1,16 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
|
3
|
-
CSV
|
3
|
+
CSV読み込み時に下記の記号が文字化けし「?」になります。
|
4
4
|
```
|
5
5
|
▶
|
6
6
|
```
|
7
7
|
|
8
|
-
|
9
|
-
###
|
8
|
+
### 書き込み時ソースコード
|
10
|
-
|
11
|
-
```
|
9
|
+
```
|
12
|
-
<?php
|
13
|
-
$
|
10
|
+
$rows = array (
|
14
11
|
array('▶', '▶', '▶', '▶'),
|
15
12
|
array('▶', '▶')
|
16
13
|
);
|
17
|
-
|
18
|
-
foreach ($arr as $line) {
|
19
|
-
mb_convert_variables('SJIS-win', 'UTF-8', $line);
|
20
|
-
$file->fputcsv($line);
|
21
|
-
}
|
22
|
-
```
|
23
|
-
|
24
|
-
### 補足情報(FW/ツールのバージョンなど)
|
25
|
-
|
26
|
-
ご教授お願いいたします。
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
### 解決済み
|
31
|
-
```
|
32
14
|
$spec = "php://filter/write=convert.iconv.utf-8%2Futf-16le/resource=sample.csv";
|
33
15
|
$file = new \SplFileObject($spec, 'wb');
|
34
16
|
$file->setCsvControl("\t");
|
@@ -39,9 +21,8 @@
|
|
39
21
|
}
|
40
22
|
```
|
41
23
|
|
24
|
+
### 該当のソースコード
|
42
25
|
|
43
|
-
### 読み込み時文字化け
|
44
|
-
|
45
26
|
```
|
46
27
|
$spec = "php://filter/read=convert.iconv.utf-16%2Futf-8/resource=sample.csv";
|
47
28
|
$file = new \SplFileObject($spec, 'rb');
|
@@ -56,4 +37,10 @@
|
|
56
37
|
foreach ($file as $row) {
|
57
38
|
var_dump($row);
|
58
39
|
}
|
59
|
-
```
|
40
|
+
```
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
### 補足情報(FW/ツールのバージョンなど)
|
45
|
+
|
46
|
+
ご教授お願いいたします。
|
2
sample.csv
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,4 +37,23 @@
|
|
37
37
|
foreach ($rows as $row) {
|
38
38
|
$file->fputcsv($row);
|
39
39
|
}
|
40
|
+
```
|
41
|
+
|
42
|
+
|
43
|
+
### 読み込み時文字化け
|
44
|
+
|
45
|
+
```
|
46
|
+
$spec = "php://filter/read=convert.iconv.utf-16%2Futf-8/resource=sample.csv";
|
47
|
+
$file = new \SplFileObject($spec, 'rb');
|
48
|
+
$file->setFlags(
|
49
|
+
\SplFileObject::READ_CSV |
|
50
|
+
\SplFileObject::SKIP_EMPTY |
|
51
|
+
\SplFileObject::READ_AHEAD |
|
52
|
+
\SplFileObject::DROP_NEW_LINE
|
53
|
+
);
|
54
|
+
$file->setCsvControl("\t");
|
55
|
+
|
56
|
+
foreach ($file as $row) {
|
57
|
+
var_dump($row);
|
58
|
+
}
|
40
59
|
```
|
1
sas
title
CHANGED
File without changes
|
body
CHANGED
@@ -23,4 +23,18 @@
|
|
23
23
|
|
24
24
|
### 補足情報(FW/ツールのバージョンなど)
|
25
25
|
|
26
|
-
ご教授お願いいたします。
|
26
|
+
ご教授お願いいたします。
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
### 解決済み
|
31
|
+
```
|
32
|
+
$spec = "php://filter/write=convert.iconv.utf-8%2Futf-16le/resource=sample.csv";
|
33
|
+
$file = new \SplFileObject($spec, 'wb');
|
34
|
+
$file->setCsvControl("\t");
|
35
|
+
|
36
|
+
$file->fwrite("\xEF\xBB\xBF");
|
37
|
+
foreach ($rows as $row) {
|
38
|
+
$file->fputcsv($row);
|
39
|
+
}
|
40
|
+
```
|