Jos*_*osh 7 c++ string unicode encoding
我在尝试理解不同的编码时遇到了一些问题.
字符串的默认编码是什么?
char ascii[]= "Some text"; // This is plain ASCII right?
wchar_t utf[] = L"Some Text"; // Is this UTF-16? Or ASCII stored in wchar_t's?
MessageBoxW(NULL, L"Hello", L"HI", MB_OK); // What encodings are the 2 strings in?
Run Code Online (Sandbox Code Playgroud)
然后,我将如何创建UTF-8字符串?如果我想在MessageBox中显示UTF-8字符?
我的问题主要针对Windows,但如果在不同的操作系统上有所不同,我有兴趣知道.
该标准未指定窄字符串或宽字符串的编码.供应商通常会在目标机器上瞄准一些不足为奇的东西,但很难说更多.这意味着,例如,窄字符串可能在大多数个人计算机上使用ASCII(或者,实际上类似于ISO-8859),但在IBM大型机上使用EBCDIC.
宽字符串也有所不同 - 例如,Windows上的大多数编译器都使用UTF-16.在Linux上,UTF-32/UCS-4可能更常见.
提到MessageBox
Windows,其中(正如你猜测的那样)你通常会有宽字符串的UTF-16.在这种情况下,如果明确指定宽字符串,则还需要显式指定函数的宽版本 - MessageBoxW
.
至于创建一个UTF-8字符串文字,我能说的就是"祝你好运".这将取决于Visual Studio,但如果有办法让它做到这一点,我不知道它.
归档时间: |
|
查看次数: |
2283 次 |
最近记录: |