c# - 将组合变音符号转换为简单的 utf

标签 c# encoding diacritics

由于某些编码问题,我在将字符串插入数据库时​​遇到问题。

字符串源是外部 rss 提要。 在网络浏览器中它看起来不错。即使在调试器中,文本似乎也没有问题。 如果我将strong复制到记事本,结果也可以。

accented

但是在 Notepad++ 中可以看到字符串正在使用组合字符。 如果更改为 ansii,则两者合并出现。 例如

á 显示为´

(在 Notepad++ 中就像有两个字符,在另一个之上。我什至可以选择...一半的字符)

enter image description here

我在谷歌上搜索了很多,并尝试了非常不同的方法来解决这个问题。 我真的很想找到一种将变音符号组合成简单的 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/

相关文章:

c# - 单色触摸 : Doubling Appearance Image size when Hue adjusted on Retina display

c# - 我希望生成一个具体名词列表......带有图片和相关句子

android - 为什么在 Android 2.3 上通过短信发送时 "@"被转换为 "¿"?

PHP:用 UTF-8 字符串中最接近的 7 位 ASCII 等价物替换变音符号

javascript - 正文 HTML 中的文本未被正确替换

ruby - 来自文件系统的带有变音符号的字符串的长度

c# - 在 Entity Framework 中获取导致保存更改异常的字段

c# - 依赖注入(inject)可以防止循环依赖吗?

file - 打开输入 VB 时指定编码

html - 更喜欢 HTML 元标记或 HTTP header 中的字符集声明?