我正在从手机接收Devanagri(印地语)脚本中的SMS消息到我的桌面程序,但它正在以编码方式显示数据(例如 - 091A09470924002009240924 ),我发现它是unicode。有没有现成的图书馆可以让我把它转换成印地文?如果不是,我该如何为此编写一个方法?我正在使用C#。如何将unicode编码的数据转换为Devanagri(印地文)文本
3
A
回答
0
1
使用System.Text.Encoding类。它有方法GetChars(byte [])。也许你会需要一个适当的字体,因为一些印地语符号可以用几种方式写。
1
这是我用于将Georgian unicode转换为其拉丁等效文本的代码片段。
string[] charset = new string[33] { "a", "b", "g", "d", "e", "v", "z", "T", "i", "k", "l", "m", "n", "o", "p", "J", "r", "s","t", "u", "f", "q", "R", "y", "S", "C", "c", "Z", "w", "W", "x", "j", "h" };
string unicodeString = "აბ, - გდ";
string latin_string = "";
byte[] unicodeBytes = Encoding.Unicode.GetBytes(unicodeString);
for (int p = 0; p < unicodeBytes.Length/2; p++)
{
if (unicodeBytes[p * 2] > 207 && unicodeBytes[p * 2] < 241)
latin_string += charset[unicodeBytes[p * 2] - 208];
else
latin_string += Convert.ToChar(unicodeBytes[p * 2]).ToString();
}
说明只将必要的部分:
Encoding.Unicode.GetBytes(unicodeString);
返回的字节数组,该数组的长度是2 * unicodeString.Length
。这样来自unicodestring的每个字母都有一对字节。 为更好的解释继承人图像附加
unicodeBytes
偶数索引有值表示您要解码的字母。格鲁吉亚字母的第一个字母是208开始,结尾是240(总计33)。所以如果unicodeBytes
的值在[208; 240]的范围内,我不得不使用charset
字符串数组来获得拉丁等价物,否则unicodeBytes
值只是char代码。
我不知道是否有一个库,但这种方法会给你基本的想法如何编写自己的转换器。
相关问题
- 1. 如何将ANSI文本转换为Unicode?
- 2. 将Unicode实体转换为Unicode文本
- 3. 将韩文文本转换为Unicode
- 4. 如何将unicode文本转换为utf8文本可读?
- 5. 如何将unicode文本转换为普通文本
- 6. 如何将保存的文本文件编码转换为UTF8?
- 7. 将DER编码的数据转换为c中的文本#
- 8. 将Unicode字段转换为文本
- 9. 如何从文本文件中将字符串转换为unicode?
- 10. 如何将ascii码转换为文本?
- 11. 将unicode文本转换为Ansi文本的批处理文件
- 12. 如何将我的unicode字典转换为纯文本
- 13. objectMapper将印地文文本转换为特殊字符“???”
- 14. 如何将文本文件中的数据转换为列表?
- 15. 如何将文本文件转换为perl中的JSON数据?
- 16. 如何从文本框中获取印地文(Unicode)文本?
- 17. 文本转换为Unicode转义序列
- 18. 将十六进制编码的字符串转换为unicode文本
- 19. Swift:如何将\ U文字编码替换为纯UNICODE字符?
- 20. 如何将数字转换为文本?
- 21. unicode文本的MD5转换
- 22. 如何将Unicode编码的字符串转换为字符串
- 23. 如何将python转换为unicode以下文本?
- 24. 将文本转换为数据帧
- 25. 将文本数据转换为日期
- 26. 如何处理将文档从PDF转换为文本时的Unicode字符编码问题
- 27. 如何Unicode编码字符变量转换为Unicode字符python2
- 28. 将unicode转换回文本 - Wordpress JSON api
- 29. 如何将RPC /编码样式WSDL转换为文档/文字
- 30. 如何将看起来像英文的Unicode文本转换为ASCII?
只是为了一个音符添加到您的“是unicode”你看到的由两个字节表示Unicode代码点。即你的角色是091A 0947 0924 0020 0924 0924.你可以在http://www.unicode.org/charts/PDF/U0900.pdf看到相应的Devangari代码页。 – borrible