我在c#中使用visual studio 2010將文本轉換爲unicodes。就像我有一個字符串abc =「मेरा」。 此字符串中有4個字符。我需要所有的四個Unicode字符。 請幫幫我。如何在包含印地文文本的字符串中檢索字符的Unicode十進制表示?
回答
當你編寫像string abc= "मेरा";
這樣的代碼時,你已經將它作爲Unicode(特別是UTF-16),所以你不必轉換任何東西。如果你想訪問單數字符,你可以使用普通索引來完成:例如abc[1]
是े
(DEVANAGARI VOWEL SIGN E)。
如果您想查看這些字符的數字表示形式,只需將它們轉換爲整數。例如
abc.Select(c => (int)c)
給出的數字2350,2375,2352的序列,2366如果你想看到這些數字的十六進制表示,使用ToString()
:
abc.Select(c => ((int)c).ToString("x4"))
回報串序列「 092e「,」0947「,」0930「,」093e「。
請注意,當我說數字表示,我實際上是指他們使用UTF-16的編碼。對於Basic Multilingual Plane中的字符,這與其Unicode代碼點相同。絕大多數使用的字符都在BMP中,包括這裏提供的4個印地語字符。
如果你也想處理其他飛機的人物,你可以使用下面的代碼。
byte[] bytes = Encoding.UTF32.GetBytes(abc);
int codePointCount = bytes.Length/4;
int[] codePoints = new int[codePointCount];
for (int i = 0; i < codePointCount; i++)
codePoints[i] = BitConverter.ToInt32(bytes, i * 4);
由於UTF-32直接對所有(21位)編碼點進行編碼,因此會給你它們。 (也許有一個更直接的解決方案,但我還沒有找到一個。)
如果您正試圖將文件從一個傳統的編碼轉換成Unicode:
讀取文件,提供源文件的正確的編碼,然後寫入使用所需的Unicode編碼方案的文件。
using (StreamReader reader = new StreamReader(@"C:\MyFile.txt", Encoding.GetEncoding("ISCII")))
using (StreamWriter writer = new StreamWriter(@"C:\MyConvertedFile.txt", false, Encoding.UTF8))
{
writer.Write(reader.ReadToEnd());
}
如果你正在尋找的梵文字符爲Unicode代碼點的映射:
你可以找到在Unicode Consortium網站here圖表。
請注意,Unicode代碼點傳統上以十六進制編寫。因此,而不是十進制數字2350,代碼點將被寫爲U + 092E,並在代碼圖上顯示爲092E。
由於a。淨焦炭是一個 Unicode字符(至少爲BMP代碼點),你可以簡單地列舉所有字符串中的字符:導致
2350
2375
2352
2366
謝謝你,它爲我工作。 – Deepak 2011-05-05 20:46:26
var abc = "मेरा";
foreach (var c in abc)
{
Console.WriteLine((int)c);
}
如果你有串s = मेरा
那麼你已經有了答案。
此字符串包含BMP中的四個代碼點,UTF-16中的代碼點由8個字節表示。您可以通過指數與s[i]
訪問它們,用foreach
環路等
如果你想底層8個字節你可以訪問他們像這樣:
string str = @"मेरा";
byte[] arr = System.Text.UnicodeEncoding.GetBytes(str);
該字符串包含4個代碼點,它表示爲4個char或8個字節。你的代碼(固定時)返回一個8字節的數組。 – svick 2011-05-05 20:10:36
@svick我只能看到2個代碼點。你能解釋4從哪裏來? – 2011-05-05 20:11:34
@svick看來我的印地文不是很好!我糾正了我的答案。 – 2011-05-05 20:18:22
- 1. 檢查字符串包含Unicode字符
- 2. 以十六進制表示形式打印字符串或將文字控制字符打印爲文字
- 3. 如何將字符串轉換爲字符串包含十六進制字符
- 4. ObjC/iOS:如何檢索字符的unicode十六進制代碼?
- 5. 字符串在C中包含字符串++的文本文件
- 6. 包含unicode字符的字符串的字符索引
- 7. 如何將包含unicode字符的字符串轉換爲unicode?
- 8. 在字符數組中包含字符的十進制等值
- 9. 在包含字符串的文本文件中打印行
- 10. iOS:以十進制表示法打印Unicode字符
- 11. 如何XOR十六進制字符串與Python中的文字字符串?
- 12. Javascript - 十進制字符串的十六進制字符串
- 13. 如何搜索包含特定文本字符串的文件?
- 14. 搜索字符串中的十六進制子字符串
- 15. MySQL中的Unicode(十六進制)字符文字
- 16. 如何找出該字符串中包含unicode字符在C#
- 17. 將unicode字符串轉換爲十六進制表示形式
- 18. 打印xattr十六進制輸出的字符串表示
- 19. 將包含字符串的[]字節轉換爲十進制值
- 20. 如何將文本字符串轉換爲十六進制字符串?
- 21. 包含在字符串列表中的檢查字符串
- 22. 檢查字符串是否包含Unicode字符的暴怒
- 23. 如何在VB.Net中表示Unicode Chr代碼字符串文字?
- 24. 正則表達式:在搜索中包含文本字符串
- 25. Shell腳本:在文本文件中搜索多個字符串並顯示包含字符串的行
- 26. 的Python:轉換Unicode的十六進制字符串爲Unicode
- 27. 爲字符串打印unicode十六進制值
- 28. 如何在python字符串中表示十六進制值?
- 29. 如何在Red/System中表示十六進制字符串?
- 30. 打印長十六進制字符串
見http://unicodelookup.com/#मेरा/1 – 2011-05-05 19:36:37