CodePage ID 到 CodePage 名称:Delphi 中的 GetEncoding 等效吗?
我正在寻找在 Delphi7 中使用的 .Net Encoding.GetEncoding 方法的 Win32 等效项。
我想要实现的是将代码页 ID(即:28592)转换为代码页名称(在本例中为 iso-8859-2)。
我找到了一个名为 GetCPInfoEx 的 Win32 函数,但它返回一个很长的 CodePage 名称,而我需要较短的代码页名称,如本页列出的名称:(请参阅“名称”列) http://msdn.microsoft.com/en-us/库/system.text.encoding.aspx
谢谢!
I'm looking for a Win32 equivalent of the .Net Encoding.GetEncoding Method to be used in Delphi7.
What I would like to achieve is to convert a Codepage ID (ie.: 28592) to a Codepage name (iso-8859-2 in this case).
I've found a Win32 function called GetCPInfoEx, but that returns a long CodePage name, and I need the short one, like the ones listed on this page: (see Name column)
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
Thank you!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是我的查找表和代码,请随意使用它。
感谢大家的回答,但事实证明这是在这种情况下唯一可用的解决方案......
Here is my look-up table with code, feel free to use it.
Thanks to everyone for the answers, but this proved to be the only usable solution in this case...
您是否在查找IANA 官方名称?由于您希望它们与 Windows CP 标识符相关,因此我认为您不能做得比 此表。
Are you looking for the IANA official names? Since you want them correlated to Windows CP identifiers, I don't think you can do better than this table.
您需要使用 IMultiLanguage::GetCodePageInfo ,作为 MLang.dll 的一部分导出。它包含在 IE4 及更高版本中。您可以使用 Delphi 的 Import Component... 命令自行创建导入库,或者从 Colin Wilson 的 低级实用程序 包。
You need to use IMultiLanguage::GetCodePageInfo, exported as part of MLang.dll. It's included with IE4 and above. You can create the import library yourself using Delphi's Import Component... command, or grab MultiLanguage_TLB.pas from Colin Wilson's low-level utilities package.
使用搜索,卢克。只是旧的好的文本搜索。在注册表编辑器中。对于您需要的任何 cp 短名称:-) 请记住,这些 ID 实际上是 Internet MIME ID
HKEY_CLASSES_ROOT\MIME\DataBase
http://msdn.microsoft.com/en-us/library/ms775147.aspx 此页面暗示可能 - 只是可能 -该密钥自 MSIE4 起就存在 - 换句话说,自 Windows 98 起
Use search, Luke. Just old good text search. In RegEdit. For any cp short name you'd need :-) and remember, those IDs are really Internet MIME ids
HKEY_CLASSES_ROOT\MIME\DataBase
http://msdn.microsoft.com/en-us/library/ms775147.aspx this page hints that probably - just probably - that key exists since MSIE4 - in other words since Windows 98
我认为你的意思是 LCIDToLocaleName 函数。
I think you mean the LCIDToLocaleName function.