【发布时间】:2011-09-23 01:37:15
【问题描述】:
在我维护的 Web 应用中,我尝试将所有内容都保存为 UTF-8:
- 数据库 (CHARSET=utf8)
- 源文件(使用 utf8;用 utf8 编写)
- 模板(对于 Template Toolkit,使用 ENCODING => utf8)
- 用户输入和输出(HTTP 中的 charset=utf8 标头,binmode :utf8 用于 STDIN 和 STDOUT)
但对于来自数据库的数据,我仍然需要使用 Encode::decode('UTF-8',$data),否则它们会被双重编码或以某种方式损坏。
这是为什么?我怎样才能摆脱这个烦人的额外步骤?难道不应该有办法只保留所有内容,每次都以 UTF-8 格式保存,而无需手动转换任何内容吗?
【问题讨论】:
标签: mysql perl utf-8 cgi encode