在Windows 7(64位)上,我将Japan设置为区域设置。在命令提示符下面反映: LC_ALL:English_United States.1252 LC_CTYPE:English_United States.1252 chcp命令:活动代码页:932(日语)
我的问题是在使用ICU库将wchar_t *转换为char *时应该使用默认转换器?在这种情况下使用“US-ASCII”,我在char *中得到垃圾结果。输入:wchar_t *包含日文字符
答案 0 :(得分:1)
根据系统设计,设置和API,可能并非总是如此 可以找到一个完全按预期工作的默认代码页......
如果您有办法检测更多的默认代码页名称 适合您的应用程序,然后您应该设置该名称 ucnv_setDefaultName()作为第一个ICU函数调用。这确保了 内部缓存的默认转换器将从中实例化 你的首选名字。