WideCharToMultiByte在英语操作系统上不转换日语
WideCharToMultiByte not converting Japanese on English OS
我需要将文件名从System.String
转换为std::string
。我同时使用日语和英语文件名。
对于英文文件名,没有问题。
只有日语文件名不会转换为英语 Windows 10 中的std::string
。
我使用了WideCharToMultiByte()
和代码页 932。
std::string marshal_as(System::String^ str)
{
std::string convertedstring;
size_t _size = 0;
cli::pin_ptr<const wchar_t> _pinned_ptr = PtrToStringChars(str);
_size = WideCharToMultiByte(932, 0, _pinned_ptr, str->Length, 0, 0, 0, 0);
if (_size > 0)
{
convertedstring.resize(_size);
char* buffer = &convertedstring[0];
WideCharToMultiByte(932, 0, _pinned_ptr, -1, &buffer[0], _size, 0, 0);
}
return convertedstring;
}
这里str
"C:\files\ブ種別.pdf"
convertedstring
"C:\files\ƒuŽí•Ê.pdf"
谁能帮我解决这个问题?
我的问题已修复。我启用了测试版:在控制面板的区域设置中使用 Unicode UTF-8 进行全球语言支持选项。
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将日语 wstring 转换为 std::string
- WideCharToMultiByte在英语操作系统上不转换日语
- 如何在 mfc 应用程序中从 api MultiByteToWideChar 将日语字符串转换为 widechar
- 日语系统中的字符转换不正确