求教 把包含汉字的数组输出到文件,其他地方调用读取为数组
这里要注意的是 需要考虑编码问题,我想要的是无论是在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 就可读回了