回答
var text = "ÜST";
var unaccentedText = String.Join("", text.Normalize(NormalizationForm.FormD)
.Where(c => char.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark));
這不會使'ı'標準化。其他解決方案? – jackjop
'var text =「ÜST」; var unaccentedText = String.Join(「」,text.Normalize(NormalizationForm.FormD) .Where(c => char.GetUnicodeCategory(c)!= UnicodeCategory.NonSpacingMark))。Replace(「ı」,「i」) ;' // swh –
我不是這種事情的專家,但我認爲通過分解值,然後有效地消除了非ASCII字符可以使用string.Normalize
做到這一點,:
using System;
using System.Linq;
using System.Text;
class Test
{
static void Main()
{
string text = "\u00DCST";
string normalized = text.Normalize(NormalizationForm.FormD);
string asciiOnly = new string(normalized.Where(c => c < 128).ToArray());
Console.WriteLine(asciiOnly);
}
}
儘管這在某些情況下完全可能會造成可怕的結果。
您可以使用以下方法解決您的問題。其他方法不正確地轉換「土耳其小寫字母I(\ u0131)」。
public static string RemoveDiacritics(string text)
{
Encoding srcEncoding = Encoding.UTF8;
Encoding destEncoding = Encoding.GetEncoding(1252); // Latin alphabet
text = destEncoding.GetString(Encoding.Convert(srcEncoding, destEncoding, srcEncoding.GetBytes(text)));
string normalizedString = text.Normalize(NormalizationForm.FormD);
StringBuilder result = new StringBuilder();
for (int i = 0; i < normalizedString.Length; i++)
{
if (!CharUnicodeInfo.GetUnicodeCategory(normalizedString[i]).Equals(UnicodeCategory.NonSpacingMark))
{
result.Append(normalizedString[i]);
}
}
return result.ToString();
}
這不是一個需要通用解決方案的問題。據瞭解,土耳其字母表中只有12個特殊字符需要標準化。這些是ı,İ,ö,Ö,ç,Ç,ü,Ü,,,Ğ,ş,Ş。你可以寫出12條規則來替代那些與他們的英語對應的規則:我,我,O,O,C,C,U,U,G,G,S,S。
Public Function Ceng(ByVal _String As String) As String
Dim Source As String = "ığüşöçĞÜŞİÖÇ"
Dim Destination As String = "igusocGUSIOC"
For i As Integer = 0 To Source.Length - 1
_String = _String.Replace(Source(i), Destination(i))
Next
Return _String
End Function
- 1. 轉換土耳其字符
- 2. 土耳其字符轉換爲php
- 3. 用英文字符代替土耳其文字符
- 4. htaccess將重寫規則轉換爲土耳其文字符
- 5. MySql土耳其文字符
- 6. 如何在java中將unicode字符串轉換爲土耳其語?
- 7. MYSQL - 土耳其字符
- 8. Lucene和土耳其字符
- 9. Java土耳其字符
- 10. Unicode字符到土耳其字符
- 11. 如何將UTF-8編碼的字符串轉換爲Xcode中的土耳其字符?
- 12. 土耳其文字符問題
- 13. Doddle Report iTextSharp土耳其文字符
- 14. mysql字符編碼與土耳其文
- 15. 字符串資源中的土耳其字符
- 16. Mysql2 ::錯誤:土耳其字符的錯誤字符串值
- 17. Python3將非英文字符轉換爲英文字符
- 18. 設置土耳其語和英語語言環境:將土耳其語字符翻譯爲拉丁語等效
- 19. 如何將字符串文字轉換爲字符串值
- 20. 如何將字符串的字符串轉換爲字符?
- 21. 如何將英尺轉換爲英寸字符串
- 22. gedit中的土耳其字符編碼
- 23. IE中的土耳其字符問題
- 24. 如何將西里爾字符串轉換爲英文在c#
- 25. 用土耳其語配置替換char字符串
- 26. 字符串轉換爲使用非英文字符(Unicode)的
- 27. 將字符從任何語言轉換爲英文字符
- 28. 如何將對象轉換爲其文字字符串?
- 29. 土耳其字符編碼與MySQL
- 30. 畢加索與土耳其字符
這是一個UTF到ASCII映射的某種? – LamonteCristo
所有土耳其字符是否只能映射到A-Z a-z範圍內的一個字符? – LamonteCristo