And*_*rey 13 .net unicode encoding ascii
如何将不同的Unicode字符转换为最接近的ASCII等效字符?像Ä - > A.我用Google搜索,但没有找到任何合适的解决方案.诀窍Encoding.ASCII.GetBytes("Ä")[0]
没有用.(结果是?
).
我发现有一个类Encoder
具有一个Fallback
属性,该属性完全适用于char
无法转换的情况,但implements(EncoderReplacementFallback
)是愚蠢的并转换为?
.
有任何想法吗?
static string RemoveDiacritics(string stIn) {
string stFormD = stIn.Normalize(NormalizationForm.FormD);
StringBuilder sb = new StringBuilder();
for(int ich = 0; ich < stFormD.Length; ich++) {
UnicodeCategory uc = CharUnicodeInfo.GetUnicodeCategory(stFormD[ich]);
if(uc != UnicodeCategory.NonSpacingMark) {
sb.Append(stFormD[ich]);
}
}
return(sb.ToString().Normalize(NormalizationForm.FormC));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4215 次 |
最近记录: |