How do you troubleshoot character encoding problems?如果您看到的只是丑陋的无字符框,您使用什么工具或策略找出出了什么问题? (我要面对的特定场景是 首先,"丑陋的无字符框"可能不是编码问题,它们可能只是您没有安装可在页面上显示字形的字体的标志。 当字符串从一个系统传递到另一个系统时,大多数字符编码问题都会发生。对于webapp,这通常在浏览器和应用程序之间,应用程序和文件系统之间以及应用程序和数据库之间。 因此,您需要检查错误编码的数据来自何处,在源处具有什么字符编码以及以什么编码接收。最好的方法是发送已知系统存在问题的字符,并在应用程序的每个级别进行检查。他们在应用程序内部是什么样的?在数据库中?当您从数据库取回它们时?当它们显示在浏览器中时? 很抱歉,这么笼统,但是这个问题并不能解决更多问题。 如果您发送到浏览器的数据被弄乱(moji-bake),您将得到垃圾字符。另外,如果在META标头中指定了错误的字符集,则浏览器将错误地呈现页面,从而导致再次进行moji-bake,有时会在页面上的随机位置出现。 在处理CJK字符集时,必须确保在程序的整个生命周期中使用UTF8字符编码(数据存储,检索,代码中的数据处理,在浏览器中显示等)。 什么是UTF8? 作为编码器,从数据库到代码库再到浏览器,您都应尝试完全使用UTF8。对于电子邮件,您可以使用UTF8,但是您可能会发现大多数邮件服务器和客户端仍然很旧,并且使用不同字符集(例如ISO9022X)的混搭。 数据库设置 检查您的代码库 我强烈建议使用像Maruo这样的经过验证的UTF8编辑器。这是由一家日本公司制造的,但是http://www.hidemaru.interlink.or.jp/software/ 上有英文版(和试用版)。 最后,您可能需要将源文件转换为UTF8。尤其是如果代码库本身包含CJK语言字符串。 操纵字符串 META标签 <元http-equiv =" content-type" content =" text / html; charset = utf-8"> 通常也可以将英文HTML文档类型属性与上述字符混合使用。因此,在具有以下内容的HTML文档中添加上面的META标记似乎可行:
电子邮件 调试UTF8问题 希望有所帮助 将数据重定向到磁盘并使用十六进制编辑器。大多数文本编辑器/查看器在后台进行自己的转换,因此很难确保您看到的是真实格式的数据。 |