下面是我的代码:
$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,但这使我现在无法实现。
谢谢你读到这篇文章,约瑟夫
发布于 2018-06-06 04:17:20
尝试使用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);
https://stackoverflow.com/questions/50708147
复制相似问题