回答
你可能會考慮你要求的東西。你需要一個能夠識別'á'並將其變爲'a'的編碼。這是一個轉換器,而不是編碼。它必須知道源代碼是什麼編碼,以便它可以轉換爲您使用的任何編碼。
等一下,也許這不是你要求的。有是編碼,將它們視爲單個字節。例如,ISO-8859-1 encoding(也稱爲Latin-1)將許多重音字符視爲單個字節。
(以下剔除,因爲我說的是ASCII,而不是UTF-7 ......漫長的一天。)
UTF-7是與許多其他編碼特別相容。它有128個可能的值:只有足夠的空間用於拉丁字母中使用的52個字母(大寫和小寫,組合),10個數字,32個控制字符和各種標點符號。但是,對於西班牙語來說這還不夠,例如,它具有顛倒的問題標記和感嘆號以及其他內容。
UTF-7與其他編碼「兼容」,因爲它可以表示整個Unicode字符集。但是隻有一些字符(稱爲「直接字符」)和一些控制字符可以直接編碼爲單個ASCII字節。這些字符將與UTF-8和許多單字節字符集中的字符相同。所有其他字符都由序列表示,並且與其他編碼不同。
今天最常用的編碼?在Web上,UTF-8被使用了很多。這也是創建StreamWriter
時使用的默認編碼。對於我所做的工作(主要是英語和西歐字符集),它比其他任何工作都更好。
現在,您可能正在尋找的是將'á'和'a'視爲相同的東西。這是一個不同的問題。有關這方面的信息,請參閱Performing Culture-Insensitive String Comparisons。
幾乎所有的編碼都可以將á編碼爲單個*字符*。它可能是幾個字節。 á可以是單個字符或字母a,然後是組合變音符號 – noggin182 2014-03-29 13:40:01
@ noggin182:注意到並固定。 – 2014-03-30 04:41:11
這似乎與編碼沒有任何關係。在C#中,存儲和傳輸使用什麼編碼並不重要,字符串總是以UTF-16內部編碼,而ä
總是以組合形式存在1個字符長。
如果"ä".Length
是給2
給你,你的字符串是分解的形式,所有你需要做的是
string str = "ä"; //a + U+0308, .Length == 2
str = str.Normalize(NormalizationForm.FormC); //just ä now, with Length == 1
感謝大家的幫助!我真的只是一個初學者,所以我想這顯示我還需要學習多少... 你們都幫了很多! – WolfyD 2013-04-12 11:32:18
@WolfyD是我的回答錯誤?你不接受它,並接受與我相矛盾的另一個完全不同的答案。 – Esailija 2013-04-12 14:03:58
對不起,我剛纔說我是新手。其實你的回答是正確的,因爲我問的問題是我問錯的東西,而當你的答案是正確的,它並沒有解決我的問題。 你的答案確實使'label1.Text = utf8.GetBytes(x).Length.ToString();'等於1,但是我沒有意識到的是那不是我的主要問題。 我正在處理的程序必須返回字符串的MD5哈希值,事實證明,我的真正問題主要是我一直使用'utf8'而不是ISO集。 再次抱歉,謝謝你,你的回答確實幫助我理解了一些事情。 – WolfyD 2013-04-12 15:19:23
很抱歉的混亂在這個問題上,我終於找到了我一直在尋找,這是我需要我的文本使用Windows-1250(中歐(Windows))代碼頁,因爲這是很多其他程序使用的,它正確支持字符,如€đł¤¤...等
感謝所有的幫助,這是一個有用的學習經驗。
- 1. 將一組字符串轉換爲簡單字符串C++
- 2. 警告將C#字符串編碼爲Javascript字符串
- 3. 重音字符
- 4. 重音字符
- 5. C++字符編碼
- 6. 字符編碼器將非標準字符編碼爲HTML
- 7. 如何編碼重音字符
- 8. Ckeditor 4不編碼重音字符
- 9. 重音字符編碼問題
- 10. Mongodb將重音字符作爲底層字符
- 11. 將重音字符轉換爲ASCII字符
- 12. 將數字視爲字符
- 13. 字符串的簡單字符輸出
- 14. C++簡單字符檢查
- 15. 使用javascript將重音字符編碼爲html實體
- 16. C中的重音/混音字符?
- 17. 將重音字符(例如字符Ç,ü,é,â)轉換爲as3中的相應非重音字符
- 18. cp1252字符串編碼爲utf-8在c#中的字符串
- 19. C++ - 將字符串轉換爲字符
- 20. R重音字符
- 21. 重音字符列
- 22. MySQL重音字符
- 23. 我需要幫助將C#字符串從一種字符編碼轉換爲另一種字符編碼?
- 24. 如何將矢量字符串轉換爲簡單字符串
- 25. 簡單的方法將0和1的字符串轉換爲字符? Plain C
- 26. Ruby:將編碼字符轉換爲實際的UTF-8字符
- 27. 將url編碼的字符串轉換爲python unicode字符串
- 28. 如何將Unicode編碼的字符串轉換爲字符串
- 29. 將寬字符串或寬字符數組轉換爲簡單字符數組的最簡單方法?
- 30. 如何將字符串解碼爲C#中的XML字符串
我相信任何UTF編碼都可以將'á'作爲單個代碼點以及'a'和變音代理的組合。你是不是把編碼與排序混淆起來?或者帶有代碼點的字符?或編碼字符串數據的代碼點?請參閱http://www.joelonsoftware.com/articles/Unicode.html。 – GSerg 2013-04-11 21:48:13