首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将json_encoded数组转换为utf8_encoded字符串,写入文件,文件应为utf8 - php

将json_encoded数组转换为utf8_encoded字符串,写入文件,文件应为utf8 - php
EN

Stack Overflow用户
提问于 2018-06-06 04:07:11
回答 1查看 45关注 0票数 0

下面是我的代码:

代码语言:javascript
复制
$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,但这使我现在无法实现。

谢谢你读到这篇文章,约瑟夫

EN

回答 1

Stack Overflow用户

发布于 2018-06-06 04:17:20

尝试使用Byte Order Mark。这可以用这种方法来完成

代码语言:javascript
复制
<?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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50708147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档