你能说流利的Unicode吗?

Ash*_*Ash 12 language-agnostic unicode ascii internationalization

大约5年前,Joel Spolsky撰写了这篇文章,"绝对最低限度,每个软件开发人员绝对必须知道Unicode和字符集(没有借口!)".

像许多人一样,我仔细阅读,意识到我很高兴能够掌握这种"替代ASCII".不幸的是,5年后,我觉得我已经在这个领域重新陷入了一些坏习惯.你呢?

我没有写很多专门的国际应用程序,但是我已经帮助构建了许多面向ASP.NET的互联网网站,所以我想这不是一个借口.

所以为了我的利益(我相信很多其他人),我可以从以下方面获得人们的一些意见:

  • 如何一劳永逸地"克服"ASCII
  • 使用Unicode时的基本指导.
  • 关于Unicode的推荐(最近)书籍和网站(面向开发人员).
  • Unicode的当前状态(Joels的文章后5年)
  • 未来发展方向.

我必须承认我有.NET背景,所以也很乐意在.NET框架中获取有关Unicode的信息.当然,这不应该阻止任何具有不同背景的人发表评论.

更新:请参阅之前在StackOverflow上提出的相关问题.

fij*_*ter 9

自从我阅读Joel文章和其他一些I18n文章以来,我一直密切关注我的角色编码; 它实际上是有效的,如果你坚持做.如果您在使用UTF-8标准的公司工作,并且每个人都知道这样做/它会起作用.

这里有一些有趣的文章(除了乔尔的文章):

引用第一篇文章; 使用Unicode的提示:

  • 拥抱Unicode,不要打它; 它可能是正确的事情,如果不是你可能无论如何.
  • 在软件内部,将文本存储为UTF-8或UTF-16; 也就是说,选择其中一个并坚持下去.
  • 尽可能使用XML与外界交换数据; 这使得一大堆潜在的问题消失了.
  • 尝试使您的应用程序基于浏览器而不是编写自己的客户端; 浏览器在处理世界文本时非常擅长.
  • 如果你正在使用其他人的库代码(当然你也是),那么假设它的Unicode处理被破坏,直到被证明是正确的.
  • 如果您正在进行搜索,请尝试将语言和字符处理问题交给理解它们的人.
  • 去亚马逊或某个地方购买最新版本的打印Unicode标准; 它包含了你需要知道的一切.
  • 花一些时间在Unicode网站上闲逛并了解代码图表的工作原理.
  • 如果您打算用亚洲语言做任何认真的工作,请去购买Ken Lunde关于这个主题的O'Reilly书.
  • 如果您有Macintosh,请用完并抓住Lord Pixel的Unicode字体检查工具.完全酷.
  • 如果你真的不得不对数据感到沮丧,那就去参加一年两次的Unicode会议.所有专家都去了,如果你不知道你需要知道什么,你就能找到那些知道的人.