我想将用户输入的 ascii 编码文本转换为 UTF-8 编码,以便我可以使用任何 unicode 字体类型显示它。例如,我想将 ASCII 中的英文字母“l”显示为 Unicode 中的“ക”。我想我也需要一个映射系统,以便我可以将 l 映射到“ക”。请帮我解决这个问题。
3 回答
您的文本采用 ISCII(印度信息交换脚本代码)。您需要将具有正确代码页的 SCII 转换为 unicode。以下方法应该可以完成这项工作。Convert 会将给定的文本从一种编码转换为另一种编码。GetEncoding 将为您提供 Convert 方法使用的 Encoding 对象。
代码页标识符可以在这里找到: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:目标编码格式。bytes: 返回: System.Byte 类型的数组,其中包含将字节从 srcEncoding 转换为 dstEncoding 的结果。
和这个
public static System.Text.Encoding GetEncoding(int codepage) System.Text.Encoding 的成员 摘要:返回与指定代码页标识符关联的编码。参数: codepage:首选编码的代码页标识符。- 或 - 0,使用默认编码。返回: 与指定代码页关联的 System.Text.Encoding。
根据维基百科文章,马拉雅拉姆语的代码页是 57009
Encoding.UTF8.GetString(Encoding.ASCII.GetBytes(input))