打开po文件时poEdit编码错误
Posted
技术标签:
【中文标题】打开po文件时poEdit编码错误【英文标题】:poEdit encoding wrong when opening po-files 【发布时间】:2016-12-21 12:14:44 【问题描述】:我在工作中使用 poEdit,但我在 po 文件中的编码遇到问题。
我有 poEdit(1.8.8 版)和 MacBook Pro(10.11.4 版)。 我正在尝试从英语翻译成瑞典语,那里有旧的翻译。但是编码错误,所以我看不到“ä”、“å”和“ö”字符。
更新版本:
我使用 github desktop,当我同步它们的文件时,github desktop 喜欢在我的文件中编写一些代码。而且我 100% 确信 github 桌面可以做到这一点,因为 .po 文件在同步之前运行良好,而且我无法从其他任何地方获取此代码。
这是 github 桌面在我的文件中写入的内容:
blabla
<<<<<<< HEAD
"POT-Creation-Date: 2016-07-23 00:13+0000\n"
"PO-Revision-Date: 2016-08-03 17:23+0300\n"
=======
"POT-Creation-Date: 2016-08-11 18:37+0000\n"
"PO-Revision-Date: 2016-08-11 18:37+0000\n"
>>>>>>> origin/master
blabla
Sooo,>>>>>> 起源/大师?!?!?!?!?!??!?! 为什么选择 github 桌面? 为什么 poEdit 不能使用它?
我删除了它,一切正常。
旧版本:
当我使用“Sublime text 3”或“textEditor”等其他应用程序打开 .po 文件时,编码正确(即 UTF-8)并且“ä”、“å”和“ö”可见。但是如果我用 poEdit 打开同一个文件,编码将是 ISO-8859-1,这是 'ä','å,'ö' 的输出:
'ä' => 'ä',
'å' => 'Ã¥',
'ö' => 'ö'.
我已尝试更改“目录 -> 属性 -> 字符集”中的编码,但没有任何改变。
我的问题是: 如何使用 poEdit 打开 .po 文件,使编码为 UTF-8。
【问题讨论】:
【参考方案1】:Poedit 似乎在理解使用 Notepad++ 生成的文件的编码方面存在一些问题,因此您可以尝试在文件顶部添加这四行,然后再使用 poedit 打开它:
msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"X-Poedit-SourceCharset: UTF-8\n"
【讨论】:
【参考方案2】:我解决了,删除了 github 桌面在我的代码中放置的内容。
这个:
blabla
<<<<<<< HEAD
"POT-Creation-Date: 2016-07-23 00:13+0000\n"
"PO-Revision-Date: 2016-08-03 17:23+0300\n"
=======
"POT-Creation-Date: 2016-08-11 18:37+0000\n"
"PO-Revision-Date: 2016-08-11 18:37+0000\n"
>>>>>>> origin/master
blabla
变成这样:
blabla
"POT-Creation-Date: 2016-07-23 00:13+0000\n"
"PO-Revision-Date: 2016-08-03 17:23+0300\n"
blabla
不需要双倍的 POT-Creation-Date 和 PO-Revision-Date。
【讨论】:
【参考方案3】:Catalog → Properties → Charset 确实改变了一些东西:文件的编码。它不会改变内容。
您的问题是您有一个损坏的 PO 文件(不是由 Poedit 或健全的 gettext 工具创建的),它与它的编码有关。 Sublime Text 中的字符集“正确”并不是真的,它只是默认为 UTF-8。您未提供的文件必须在其编码方面撒谎,并且 Poedit 信任它。换句话说,旧的 Garbage In, Garbage Out 原则。
在文本编辑器中手动将损坏的 PO 的 Content-Type 标头修复为可能(!)UTF-8,一切都会正确。
【讨论】:
它一直是 UTF-8,但这只是我一直在使用 github 桌面的最奇怪的东西,并且在同步它时在我的代码中写了一些奇怪的东西,例如:>>>>>> 起源/主人。我把它擦掉了,砰,它起作用了。你知道为什么 github desktop 会把这些东西写到我的代码中吗?以上是关于打开po文件时poEdit编码错误的主要内容,如果未能解决你的问题,请参考以下文章