由于某些编码问题,我在将字符串插入数据库时遇到问题。
字符串源是外部 rss 提要。 在网络浏览器中它看起来不错。即使在调试器中,文本似乎也没有问题。 如果我将strong复制到记事本,结果也可以。
但是在 Notepad++ 中可以看到字符串正在使用组合字符。 如果更改为 ansii,则两者合并出现。 例如
á 显示为´
(在 Notepad++ 中就像有两个字符,在另一个之上。我什至可以选择...一半的字符)
我在谷歌上搜索了很多,并尝试了非常不同的方法来解决这个问题。 我真的很想找到一种将变音符号组合成简单的 utf8 数据库兼容变音符号来转换字符串的巧妙方法。
有什么帮助吗? 非常感谢!
最佳答案
这应该适合你
output.Normalize(NormalizationForm.FormC)
这个小测试给出了 3、2、3。中间的字符串正确地将 A 和变音符号组合成单个 UTF-8 字符
Console.WriteLine(Encoding.UTF8.GetByteCount(("A\u0302")));
Console.WriteLine(Encoding.UTF8.GetByteCount(("A\u0302").Normalize(NormalizationForm.FormC)));
Console.WriteLine(Encoding.UTF8.GetByteCount(("T\u0302").Normalize(NormalizationForm.FormC)));
关于c# - 将组合变音符号转换为简单的 utf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20889305/