>백엔드 개발 >PHP 튜토리얼 >求教 把包含汉字的数组输出到文件,其他地方调用读取为数组

求教 把包含汉字的数组输出到文件,其他地方调用读取为数组

WBOY
WBOY원래의
2016-06-23 14:09:12812검색

求教 把包含汉字的数组输出到文件,其他地方调用读取为数组  
这里要注意的是 需要考虑编码问题,我想要的是无论是在GBK 还是UTF8的汉字都能正常存取
之前在utf8下 用 json 正常存取
但是换到GBK下就不行 
首先这里说明下 是GBK还是UTF8 是未知的  也就是说要在这两种编码下都能运行的代码。而不用再手动修改


回复讨论(解决方案)

易入难出是大原则
你这里显然是管“出”,所以是不应该以不定编码输出的,而应该确定只输出一种编码
至于你的数据来源与预定输出编码不符就转换好了

问一下:其他地方调用读取为数组
是指什么?
直接文件函数操作?
include?
函数调用?

把数据返回做成返回json数据的接口不就行了吗?

求教 把包含汉字的数组输出到文件,其他地方调用读取为数组  
这里要注意的是 需要考虑编码问题,我想要的是无论是在GBK 还是UTF8的汉字都能正常存取
之前在utf8下 用 json 正常存取
但是换到GBK下就不行 
首先这里说明下 是GBK还是UTF8 是未知的  也就是说要在这两种编码下都能运行的代码。而不用再手动修改

为什么GBK不行

json最好用UTF-8,否则被javascript使用后,中文可能乱码。

把数据返回做成返回json数据的接口不就行了吗? 我当然知道用JSON就行  问题是GBK JSON不支持中文  如果用icov进行编码转换  又不知道当前是GBK 还是UTF8

关键在于其他程序如何读?

关键在于其他程序如何读? 我写的是一个Discuz 的插件   由于dz有多个编码的  因此不知道用户使用的是什么编码的  所以保存的时候要根据用户的编码进行保存

既然是为 Discuz 写插件,那么就可以从 Discuz 中获取编码信息
config/config_global_default.php 中不是已经设置了使用的编码了吗?
$_config['db']['1']['dbcharset'] = '...';// 数据库字符集
$_config['output']['charset']    = '...';// 页面字符集

很难想象,写插件不利用系统已有的环境设置

写入到文件中的数据,最好用 var_export 产生的结果,以 php 代码形式写入
这样在重新使用时,用 include 就可读回了

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.