【问题标题】:Using Different Character Encodings使用不同的字符编码
【发布时间】:2011-10-31 02:55:32
【问题描述】:

最近,我对文本编码产生了兴趣。如您所知,Text Encoding 有很多种,例如 CRC949、UTF-8 等。

我想知道如何正确表达它们。 (对屏幕和用户。)我的意思是,它们彼此不同。我记得有一种特殊的方式可以根据 C# 中的编码来表达文本。

是否有可能在 C 中使用简单的printf() 来表达字符串而不考虑编码?编译器会自动做吗?

【问题讨论】:

  • 用户真的,真的不在乎。对他们来说,a 就是 a,幕后的所有二进制 gobbelygook 都不应该让他们担心。
  • C 没有文本编码的概念。 printf 只是将字节写入标准输出。一旦您了解了“字节”和“文本单元”之间的区别,您应该能够理解这一事实,也许您将能够提出更直接的问题。请记住,在 C 或 C++ 标准库中都没有内置的文本处理功能

标签: c++ c character-encoding


【解决方案1】:

阅读 Joel Spolsky 的文章The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

来自文章:

我们决定在内部使用 UCS-2(两字节)Unicode 进行所有操作, 这是 Visual Basic、COM 和 Windows NT/2000/XP 使用的 本机字符串类型。在 C++ 代码中,我们只是将字符串声明为 wchar_t ("wide char") 代替 char 并使用 wcs 函数代替 str 函数(例如 wcscat 和 wcslen 而不是 strcat 和 斯特伦)。要在 C 代码中创建文字 UCS-2 字符串,您只需放一个 L 在它之前:L“Hello”。

【讨论】:

  • 哇!闪电快……谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-19
  • 2018-07-01
  • 2018-05-27
  • 2019-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多