我希望将用户输入的ascii编码文本转换为UTF-8编码,这样我就可以使用任何unicode字体类型显示它。例如,我想将ASCII码中的英文字母“l”显示为Unicode中的“ക”。我想我也需要一个映射系统,这样我就可以将l映射到'ക‘。请帮我解决这个问题。
发布于 2013-07-16 16:07:31
您的文本是ISCII (用于信息交换的印度脚本代码)。您需要将具有正确代码页的ISCII转换为unicode。以下方法应该可以完成这项工作。Convert会将给定的文本从一种编码转换为另一种编码。GetEncoding将为您提供Convert方法要使用的编码对象。
示例代码可以在这里找到:http://www.dotnetframework.org/default.aspx/Net/Net/3@5@50727@3053/DEVDIV/depot/DevDiv/releases/whidbey/netfxsp/ndp/clr/src/BCL/System/Text/ISCIIEncoding@cs/1/ISCIIEncoding@cs
代码页标识符可以在以下位置找到:http://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx
public static byte[] Convert(System.Text.Encoding srcEncoding,System.Text.Encoding dstEncoding,byte[] bytes) 成员System.Text.Encoding摘要:将整个字节数组从一种编码转换为另一种编码。参数: srcEncoding:字节编码格式。dstEncoding:目标编码格式。字节:返回:包含字节从srcEncoding转换为dstEncoding的结果的System.Byte类型的数组。
还有这个
public static System.Text.Encoding GetEncoding(int codepage) Member of System.Text.Encoding :返回与指定代码页标识符关联的编码。参数:代码页:首选编码的代码页标识符。-或- 0,以使用默认编码。返回:与指定代码页关联的System.Text.Encoding。
根据维基百科的文章,马拉雅拉姆语的代码页是57009
发布于 2013-07-16 15:40:22
Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(input))发布于 2013-07-16 16:11:14
你的问题说不通。将编码从ASCII更改为UTF-8并不能神奇地将l转换为ക,它只是更改了l的字节表示(实际上,由于ASCII是UTF-8的子集,因此它在这里甚至不会这样做。它什么也不做。)
您可能想要的是Latin和Malayalam字母表之间的某种transliteration,但这是完全不同的东西。
https://stackoverflow.com/questions/17670721
复制相似问题