在写php文件时,出现乱码,使用各种方法都无力解决编码问题(注:使用的编辑器:UE编辑器):
方法1:iconv_set_encoding("internal_encoding", "UTF-8"); iconv_set_encoding("output_encoding", "UTF-8"); iconv_set_encoding("input_encoding", "gbk"); 强制设置文件的编码
方法2:获取编码信息:iconv_get_encoding
方法3:使用函数转换乱码的信息:iconv(fromEncoding,toEncoding,$var)
百思不得其解 ,为什么会乱码,乱码怎么解决。并且发现,不同的文件,有些乱码,有些不乱码。这是,为什么??
于是突然想到方法:
方案1: 在不乱码的文件上进行编辑,然后另存为。 打印输出,仍然乱码。 这是为什么?
方案2:这个乱码的文件是在UE编辑器中新建,然后保存的。 难道..跟这个有关...于是直接在文件夹中新建了一个文件,打印出来,不乱码了。(惊喜呀,终于不乱码了)
于是百度,为什么用UE建立的文件会出现乱码(注:文件中含有中文)
发现了源头,再找出现的原因就容易多了。附找到的解释性说明文件: http://blog.sina.com.cn/s/blog_49bcb81901013ojm.html
上面链接提到的一点: 不要在已经乱码的文件中,删除乱码然后添加中文再保存。这也是我之前会犯的错误之一。
UE,想说爱你,有点不容易。
-----2014/5/22 新编辑
时隔两年后,再次掉进了 UE编辑器对含中文的文件的编码转换的坑里。
是这么一步步的走到坑里去的:
1、新建一个文件,此时 默认格式为 ANSI
2、使用UE编辑器对该文件进行编辑,编辑的代码中含中文、含XML报文,报文中含这样的字符串“...<?xml version="1.0" encoding="UTF-8"?><ROOT><HEAD>...”
3、编辑完成后保存
4、然后就认为文件开发完成了。接着和其他文件进行比对,直接使用 记事本 将修改的文件打开,文件内容显示正确。
5、一切OK
... ... ...
但是,程序运行有问题!! 千回路转后,打开文件,发现文件的编码格式是 UTF-8。使用UE编辑器打开,发下文件竟然是乱码的。
就这样被坑到了,还特别想不清楚,这是哪里出了问题。经理说要总结,我慌了,从网上找寻资料,嘿,前人总结的很好:
http://www.cnblogs.com/zebbey/archive/2009/12/02/1615238.html
其实很有很多疑问,就是这种情况是怎么产生的,什么时候会产生。但请特别留意:UE编辑编辑的文件中当含中文时,慎用“encoding="UTF-8"” 呀。即使你这么一串字符串是注释掉的,即使这串字符串之前有,后面又被你删掉了。 UE编辑器对这串字符串的敏感程度让人想不到呀。
有一种解决方案:修改UE编辑器中的设置项:去掉“自动检测UTF-8文件”的勾选项,设置方法为:高级--->配置--->文件处理--->Unicode/UTF-8 检测,去掉“自动检测UTF-8文件”的勾选。不过,这样一修改后,UE编辑器便不能正常展示编码格式为 UTF-8 的文件了。