KeePass
密码管理器




Package

为什么内部编辑器会破坏某些RTF文本?


症状。 使用内部编辑器编辑RTF文件时 ,某些字符可能会损坏。

原因。 当Windows选项’Beta:使用Unicode UTF-8进行全球语言支持’打开时,通常会发生此问题。在这种情况下,Windows富文本框可能会返回以’ {\urtf‘而不是通常’ {\rtf‘ 开头的RTF数据(并且代码页设置为65001,这意味着UTF-8)。但是,.NET Framework类的Rtf属性RichTextBox要求RTF数据以’ {\rtf‘ 开头; 试图设置’ {\urtf‘RTF数据会导致异常被抛出。因此,RTF往返被打破了。作为一种解决方法,KeePass u从RTF数据的开头删除了’ ‘。作为’ {\urtf‘和’ 的语法{\rtf‘RTF文档是相同的,生成的RTF数据是有效的(例如,可以通过LibreOffice Writer正确加载)。但是,这种组合(’ {\rtf‘与UTF-8代码页65001一起)会导致Windows损坏某些字符:忽略字符的实际代码页(使用’ ‘ 显式选择),并将其值重新解释为Unicode字符,大多数字符不正确。例如,西里尔字符’Г’(U + 0413)可能被破坏为’Ã’,因为’Г’在西里尔字母代码页1251中具有值195(十六进制0xC3)并且Windows将其重新解释为Unicode字符U + 00C3(即’Ã’)而不是正确地将其转换为正确的Unicode字符U + 0413。\fN

解析度。 关闭Windows选项’Beta:使用Unicode UTF-8进行全球语言支持’(在Windows系统设置→’时间和语言’→’区域和语言’→’管理语言设置’→选项卡’管理’→按钮’更改系统区域设置’)。

上一页:
下一页:


沪ICP备19023926号-2 Copyright © 2003-2019 Dominik Reichl, [联系我们 / 版本说明] [团队 & 隐私政策]