winapi - 如何使用 Win32 API 从 UTF-8 char * 切换到动态编码?
问题描述
我目前正在开发一个在 Node.js 中使用 Hunspell 的项目。目标是一个跨平台的拼写检查,可以正确地使用编码(node-spellchecker
)。
我必须使用具有不同编码的任意字典。大多数都SET UTF-8
在*.aff
文件中,但其他字典有编码,如SET ISO8859-1
. 我从 Node 获得 UTF-8,但我需要将其转换为字典的编码。然后,我需要将其反向转换以处理建议。
使用 Linux,我可以使用iconv
它来转换它,但在 Windows 方面我没有。但是,我不想要求 UTF-8 字典(有效)。
任何关于从哪里开始的建议或提示将不胜感激。WideCharToMultiByte
一步使用,但我找不到MultiByteToMultiByte
我期望的。
我有的东西
const char *from_encoding_name = "UTF-8"; // This can be swapped
const char *to_encoding_name = "ISO8859-1"; // This can be swapped
const char *word = /* möchtzn encoded in UTF-8 */;
我想要的东西
const char *dictionaryWord = /* möchtzn encoded in ISO-8859-1 */;
谢谢你。
解决方案
我不认为模拟MultiByteToMultiByte
存在于WinAPI
. 我会使用两个电话:MultiByteToWideChar
然后WideCharToMultiByte
.
顺便说一句,我查看了 .Net 方法Encoding.Convert的来源,也有转换是通过.Net 方法完成的UTF-16
。
推荐阅读
- php - 如何从此 PHP 数组中获取单个值
- python - 收集包元数据 (current_repodata.json):永无止境
- javascript - 每当我想清除下拉菜单时,它都会重复选项
- python - Keras/TensorFlow 低准确率和 val_acc
- javascript - 猫头鹰旋转木马上的重叠幻灯片
- c# - C# 活动目录搜索
- firefox - Firefox:通过扩展从 Javascript 运行函数
- php - 如何修复警告:为 Php Native MVC 中的 foreach() 提供的参数无效
- c# - WPF - 旋转后平移时的触摸操作问题
- excel - 使用文本框在 Excel 中使用 VBA 进行自动过滤