这里是我的代码:
$array_test = array();
$array_test[0] = "test1";
$array_test[1] = "test2";
$array_test = json_encode($array_test);
$array_test = utf8_encode($array_test);
$myfile = fopen($Pfad, "w+");
file_put_contents($Pfad, $neueZeile, FILE_APPEND);
fclose($myfile)
问题在这里,当我这样写的时候,我会得到一个ANSI编码文件。
据我所知,如果我将UTF8编码的内容放入其中,该文件将被UTF8编码。
如果我utf8_encode一个简单的字符串它将工作,但不是整个json_encoded数组。
没有我被困,导致它的工作方式。如果我只是自己对数组内容进行utf8_encode,然后对其进行json_encode,那么该文件仍将设置为ANSI。
任何人都有一些想法,有没有办法,我能理解错误吗?
我尝试将整个加载读取和保存到文件的过程设置为utf8,但这使得我现在无法做到这一点。
感谢您阅读本文, 约瑟夫
答案 0 :(得分:0)
尝试使用Byte Order Mark。这可以通过这种方式完成
<?php
$array = array("test1", "test2");
$json = json_encode($array);
$utf8_string = utf8_encode($json);
$utf8_w_bom = "\xEF\xBB\xBF" . $utf8_string; // Add BOM to the start of the string
file_put_contents($Pfad, $utf8_w_bom);