我的Win32 Delphi应用程序分析由不支持Unicode的其他应用程序生成的文本文件。因此,我的应用程序需要读取和写入ansi字符串,但我想通过在GUI中使用Unicode来提供更好的本地化用户体验。该应用程序在TList后代的对象中对字符串进行了一些非常重要的逐字分析。过渡到处理文本文件的应用程序的Unicode
在作出准备从2006年德尔福德尔福2009年过渡到Unicode的图形用户界面,我应该计划:
- 去完全支持Unicode我的应用程序中,与AnsiString类型文件I/O的例外呢?
- 将来自其他Unicode应用程序的处理ansistrings的代码封装起来(即继续将它们作为内部ansistrings处理)。
我意识到,一个真正的详细答复,将需要我的代码大量的 - 我只是问那些谁做了这种转变,谁仍然有纯文本文件的工作印象。在ansistrings和Unicode之间放置屏障的地方在哪里?
编辑:如果#1,任何建议映射Unicode字符串的ansistring输出?我猜想,输入字符串的转换将自动使用tstringlist.loadfromfile(例如)。
非常好 - 你解释这个的方式有很大的帮助。根据我的理解,输入将确实是UTF-8文本文件(直接ASCII),现在我可以在内部使用UTF-8编码的Unicode字符串。 – Argalatyr 2009-06-17 04:32:35
在内部使用UTF-8编码的字符串并不是那么简单,所以我不建议将其作为策略。你会发现,一旦你开始使用Stringlists和更有用的VCL字符串函数,你需要的函数将不存在或使用它将涉及两个编码转换。 – frogb 2009-06-17 09:39:19
@frogb:的确,作为一项政策,这将是一个坏主意。这需要根据具体情况来决定。不知道代码是做什么的,但是不可能说出需要哪些VCL字符串函数,以及这会导致哪些编码转换。 – mghie 2009-06-17 10:27:50