有没有办法让Windows 7支持12000(UTF-32)代码页或1200(UTF-16)代码页?如何使Windows 7支持12000(UTF-32)代码页或1200(UTF-16)代码页?
回答
不能。这些代码页不能设置为当前的MBCS代码页。 (也就是说,“ANSI”API使用的代码页,例如用终端A命名的Windows函数,如CreateWindowA
,或C或C++运行时中的C语言环境使用的代码页)。
UTF-32不支持,因为Windows MBCS代码页支持只允许占用一个或两个字节的字符。
由于相同的原因,UTF-16不能被支持 - BMP之外的字符需要4个字节来表示。
另外,不支持UTF-8,因为再次有些字符需要4个字节来表示。
可以通过使用UNICODE API使用UTF-16(小端品种)本身(即是W变体例如CreateWindowW
,和宽字符C和C++库函数)。另外,您可以使用MultiByteToWideChar
和WideCharToMultiByte
在UTF-32,UTF-8,UTF-16BE和UTF-16LE之间进行转换。
如果您正在编写一个仅限Windows的程序,则应该只使用UNICODE API。如果你正在编写一个你希望可移植的C运行时程序,你可能希望为Windows创建一个UNICODE版本,并为Unix/Linux创建一个UTF-8版本。
使用'std :: codecvt_utf8_utf16'和'std :: wstring_convert'很容易实现一组简单的'widen'和'narrow'转换函数,我一直使用它们来构成WIN32 I的UTF-8封装我一直在写作过程中。 – Mgetz
@Mgetz你甚至可以使用Win32 API'MultiByteToWideChar'和'WideCharToMultiByte'函数编写简单的包装。 – rubenvb
@Mgetz,的确我已经使用了我自己编写的这种包装器,还有像这里发现的A2W这样的http://msdn.microsoft.com/en-us/library/87zae4a3(v=vs.90).aspx .. 。基于这些,很容易编写一个U82W W2U8宏等等。 – Ben
- 1. Windows代码页的mac支持
- 2. gnome-terminal是否支持DOS代码页?
- 3. linux上的代码页转换支持
- 4. VS代码如何支持ES6代码
- 5. 如何使用MBCS支持没有代码页的语言?
- 6. 什么是Windows代码页?
- 7. 的Windows活动代码页
- 8. 如何将代码页ascii转换为代码页1255
- 9. Xamarin UI Test“1不是支持的代码页。”
- 10. 如何混淆Windows phone 7代码
- 11. reStructuredText引用页码支持
- 12. 如何使用php代码获取html页面的页面源代码?
- 13. 支持SIMD的代码?
- 14. 如何使页面识别node.js代码
- 15. Erlang编译器UTF32支持
- 16. 页眉/页脚/主代码
- 17. 问题代码页
- 18. Windows 7系统中可用的代码页列表
- 19. Windows Phone 7 - 通过代码显示“SIM应用程序”页面
- 20. DOS:如何获得当前的国家代码或代码页在Turbo C
- 21. UrlFetchApp.fetch - 缺少网页代码。如何获得完整的代码?
- 22. 如何使用jQuery或JavaScript从html页面获取SVG代码?
- 23. PDCurses和DOS代码页437
- 24. 将支持MPICH2的代码转换为OpenCL代码
- 25. 每页上的代码页眉或页脚或使用包含标签?
- 26. UTF32 UTF16在Java中的转换
- 27. 工具类似动态代码进化与Java 7的支持
- 28. 支持源代码行排除的Java代码覆盖工具
- 29. 源代码洞察中的汇编代码支持
- 30. 代码段和代码完全支持CLOUD9
问题是什么?你为什么认为这个问题的原因是操作系统配置? – Ilya
几乎没有题目 –
就MS而言,所有形式的Unicode都是相同的,并且不是ANSI代码页,他们选择使用UTF-16编码作为其API,并且目前还没有计划支持其他任何内容。 – Mgetz