我应该使用特殊的Unicode字符作为标点符号,例如程序中的省略号吗?

时间:2009-05-25 05:26:36

标签: windows language-agnostic unicode user-interface

Unicode有一组用于标点符号的字符,例如省略号(...),En-Dash( - )等。人们相信使用这些字符可以改善字体排版,从而改善文本的视觉外观。

包括Visual Studio在内的许多开发工具都支持Unicode,因此我可以轻松地在程序资源中使用这些字符 - 对话框等。

有没有理由不这样做?

2 个答案:

答案 0 :(得分:5)

如果您完全确定用户的机器将具有正确显示这些字符所需的字体(例如,对于Windows上的对话框,您肯定能够依赖它),那么,请继续!

答案 1 :(得分:1)

为了完全安全,我会避免在源代码文件中使用Unicode字符,例如在硬编码字符串中使用它们。相反,我坚持使用ASCII或系统代码页。原因是某些源代码管理系统可能不支持Unicode。

例如,Tortise SVN曾经不正确地处理了一个Unicode源代码文件,并最终在提交时永久地将文件修改为无法修复,直到下次检索它进行编辑时才检测到该文件。我认为当系统尝试将新Unicode文件中的更改合并到最初提交的非Unicode文件时,会出现问题。无论如何,我不得不完全重写代码,因为修改发生的原因是原始信息无法恢复。我不知道它为什么会发生,或者它现在发生的可能性有多大,但我提到它是因为我经历过它。

如果您确实避免在源代码文件中使用Unicode,那么您可以将Unicode字符串存储在嵌入式资源,具有适当BOM的外部编码文件或数据库中。