【问题标题】:String encoding - German umlaut字符串编码 - 德语变音符号
【发布时间】:2023-03-08 21:15:01
【问题描述】:

使用 C#、Framework 4.0,我在德语方面遇到了一个棘手的问题。

考虑到这个snippet

string l_stest = "ZÄHLWERKE";
Console.WriteLine(l_stest.Length); // 9
Console.WriteLine(toto.LengthInTextElements); // 9
Console.ReadLine();

结果将是9;

现在,选择带有Notepad++ 的文本,它将得到10 的长度。

我猜encoding 是我的问题的根源,但不必扫描我的单词并用匹配的两个字母替换变音符号(Ä -> AE),我该如何继续计算正是我的字符串的长度?

编辑:我认为正确的长度是10

提前致谢!

【问题讨论】:

  • 将源文件另存为 UTF-8 已经试过了吗?
  • 你认为正确的字符串长度是 9 还是 10?
  • 听起来像是 N++ 中的一个奇怪的错误,如果你问我的话。再说一次,我认为它是 Unicode 感知的。
  • @ryadavilli 已更新,谢谢!
  • Ä 是一个字符,那你为什么要把它算作两个呢?

标签: c# localization string-length


【解决方案1】:

Encoding.UTF8.GetByteCount(l_stest) 看起来会得到你想要的长度。

【讨论】:

  • +1:更好!不知道GetByteCount 方法。
  • @Rawling:哦,我想你是我的救命恩人!我试试看,几分钟后会接受...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2021-07-08
  • 2020-12-04
  • 1970-01-01
  • 2016-01-21
  • 1970-01-01
相关资源
最近更新 更多