最近,我对Text Encoding感兴趣。如您所知,有很多种文本编码,如CRC949,UTF-8等。
我想知道如何恰当地表达它们。 (对屏幕和用户而言。)我的意思是,它们彼此不同。我记得根据C#中的编码表达文本有特殊的方式。
是否可以在C中使用简单的printf()
来表达字符串而不管编码?编译器会自动执行吗?
答案 0 :(得分: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 (“宽字符”)而不是char并使用wcs函数而不是 str函数(例如wcscat和wcslen而不是strcat和 strlen的)。要在C代码中创建文字UCS-2字符串,只需输入一个L. 在它之前:L“你好”。