【发布时间】:2012-03-04 17:14:24
【问题描述】:
我正在使用 cake i18n 命令在我的应用程序中提取 __() 函数的内容。
但是,default.pot 输出文件未以 UTF-8 编码,因此无法正确显示重音字符,这是一个问题,因为主要语言是法语(很多 'é' , 'à' ...)。
我在 Windows 7 上使用 wamp 服务器。
我尝试使用 chcp 更改 Windows 控制台的编码,以使用 notepad++ 或 PSpad 编辑器将 default.pot 文件转换为 UTF-8 格式,但没有成功。
你知道用 UTF-8 格式获取这个 default.pot 文件的方法吗?
所有 .php 或 .ctp 文件均使用 Komodo 或 Geany 进行编辑,在 Windows 上均配置为使用 UTF-8。 如果有帮助,我也在使用颠覆。
感谢您的阅读。
【问题讨论】:
-
您是如何确定该文件不是 UTF-8 格式的?一个常见的错误是假设 UTF-8 文件必须以 U+FEFF 开头。
-
@MSalters 我认为这是因为 POedit 无法先打开文件。我用 Geany 打开了 default.pot,发现重音字符被替换为像“è”这样的字符串。正如我在 OP 中所说,我尝试使用 UTF-8 中的 notepad++(它以 ANSI 打开文件)进行转换,但没有成功(重音字符无法正确显示)。我希望这会有所帮助。
-
记事本“打开...”对话框有一个选项可以明确指定编码为 UTF-8,它会覆盖默认值。您确实看到
è的事实实际上是积极的,因为这清楚地表明实际的 UTF-8 被错误地检测为 Latin-1 -
感谢您的解释,我确实设法以 UTF-8 格式打开它。但是为什么 POedit 会告诉我它“无法转换为 unicode”呢?
-
听起来像是我在之前的 cmets 中提到的“常见错误”。或者您的 .pot 文件是从多种来源编译而来的,有些是 UTF-8,有些不是。
标签: cakephp encoding utf-8 internationalization command-line-interface