2011-09-19 65 views
1

我目前正在将遗留系统转换为新平台,并需要从旧系统资源文件中提取字符串。unicode文本编辑器的提示

旧系统是用Delphi编写的,字符串保存在名为.dfm的文件中。我毫无困难地找到字符串,对于英语和其他欧洲语言来说没有问题。当我尝试用日文提取字符串时会遇到麻烦。我用Notepad ++,在我看来,该程序不认可正确的编码。我得到日本的符号,但他们似乎不符合GUI中的内容。记事本++在GB2312(简体中文)中显示标志。但它看起来很奇怪。

我的问题是,有没有人有任何提示在这样的操作擅长的程序/文本编辑器? 此外,我很感激任何可能帮助我的提示。

+2

什么样的代码页不遗留代码使用时与japenese合作? –

+0

该应用很可能使用了http://msdn.microsoft.com/en-us/goglobal/bb964654上提到的双字节代码页之一。请查看http://msdn.microsoft.com/en-us/goglobal/bb964655获取OEM代码页。虽然它有许多相同的双字节代码页,只有两个额外的。我猜记事本++猜测/得到它错误,你需要“932(日本Shift-JIS)” –

+0

不知道你想要做什么?将Delphi DFM资源转换并提取到“新平台”?什么平台?也许答案就是解决这个问题的关键。你可以从排除过程开始,通过确定之前在非Unicode的delphi应用程序中使用的代码页。 –

回答

2

假设你的问题很简单,就是记事本+ +是不正确的猜测编码可以通过手动设置编码在记事本中解决问题++,就像这样:

enter image description here

+0

Shift-JIS可能是我想要的,虽然我的N ++不显示它,只有Big5(传统)和GB2312(简体)。 – Oglop

+0

我有5.9.7的npp,你在什么版本上? –

+0

我安装了Notepad ++ _v5.9.3的瑞典语版本,只显示Big5(繁体)和GB2312(简体)。卸载并以英文安装。突然,程序显示Shift-JIS而不是其他编码选项,并且我在资源文件中找到正确的文本。很奇怪,但现在看来它会工作得很好。不明白为什么不同安装的相同程序支持不同的编码..该屏幕截图真的救了我,谢谢。 – Oglop

1

记事本++本身已经处理编码问题。使其符合所需的编码,如Unicode;

  1. 第一,复制文件中的所有内容,
  2. 选择的Unicode没有BOM菜单,
  3. 最后,用复制的内容替换所有内容
  4. 保存文件

你的内容将会以你想要的编码。

1

Delphi中的字符串不保存在DFM中。只有表格和相关文字。所以你也要查看所有的代码。

至于DFM - 在Delphi 2009之前DFM没有使用Unicode,所以你必须知道使用了什么charset。这是Delphi应用程序本地化和国际化的一大问题。

+0

这个程序是在德尔福2007年,所以是的。 – Oglop