大约5年前,Joel Spolsky撰写了这篇文章,"绝对最低限度,每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)".
像许多人一样,我仔细阅读,意识到我很高兴能够掌握这种"替代ASCII".不幸的是,5年后,我觉得我已经在这个领域重新陷入了一些坏习惯.你呢?
我没有写很多专门的国际应用程序,但是我已经帮助构建了许多面向ASP.NET的互联网网站,所以我想这不是一个借口.
所以为了我的利益(我相信很多其他人),我可以从以下方面获得人们的一些意见:
如何一劳永逸地"克服"ASCII
使用Unicode时的基本指导.
关于Unicode的推荐(最近)书籍和网站(面向开发人员).
Unicode的当前状态(Joels的文章后5年)
未来发展方向.
我必须承认我有.NET背景,所以也很乐意在.NET框架中获取有关Unicode的信息.当然,这不应该阻止任何具有不同背景的人发表评论.
更新:请参阅之前在StackOverflow上提出的相关问题.
自从我阅读Joel文章和其他一些I18n文章以来,我一直密切关注我的角色编码; 它实际上是有效的,如果你坚持做.如果您在使用UTF-8标准的公司工作,并且每个人都知道这样做/它会起作用.
这里有一些有趣的文章(除了乔尔的文章):
http://www.tbray.org/ongoing/When/200x/2003/04/06/Unicode
http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF
引用第一篇文章; 使用Unicode的提示:
拥抱Unicode,不要打它; 它可能是正确的事情,如果不是你可能无论如何.
在软件内部,将文本存储为UTF-8或UTF-16; 也就是说,选择其中一个并坚持下去.
尽可能使用XML与外界交换数据; 这使得一大堆潜在的问题消失了.
尝试使您的应用程序基于浏览器而不是编写自己的客户端; 浏览器在处理世界文本时非常擅长.
如果你正在使用其他人的库代码(当然你也是),那么假设它的Unicode处理被破坏,直到被证明是正确的.
如果您正在进行搜索,请尝试将语言和字符处理问题交给理解它们的人.
去亚马逊或某个地方购买最新版本的打印Unicode标准; 它包含了你需要知道的一切.
花一些时间在Unicode网站上闲逛并了解代码图表的工作原理.
如果您打算用亚洲语言做任何认真的工作,请去购买Ken Lunde关于这个主题的O'Reilly书.
如果您有Macintosh,请用完并抓住Lord Pixel的Unicode字体检查工具.完全酷.
如果你真的不得不对数据感到沮丧,那就去参加一年两次的Unicode会议.所有专家都去了,如果你不知道你需要知道什么,你就能找到那些知道的人.