9-11 发现的,过久了都忘了,记一下

            string s = Encoding.ASCII.GetString(new byte[] { 0x57, 00, 0x49, 00, 0x4e, 00, 0x44, 00, 0x4f, 0, 0x57, 0, 0x53, 0 });  // WINDOWS
            int i = s.IndexOf("IN");
            Console.WriteLine(i);       // -1

在 .net framework, 得到的是 -1.

然而在 .net core,得到的是 2. 也就是说它在 ASCII 编码下对比忽略了 0。

后来翻阅源码找到了一个配置节

   <InvariantGlobalization>true</InvariantGlobalization>

源码
.net core 文本比对的一个诡异设计

然而这还是有问题的,启用这玩意后,CultureInfo.GetCultures(..) 得到的就只有一项了, Culture 功能完全废了。看来除了改源码也没什么好办法了。

相关文章:

  • 2021-12-10
  • 2021-12-15
  • 2022-12-23
  • 2021-10-12
  • 2022-12-23
  • 2022-01-03
  • 2021-05-23
  • 2022-02-23
猜你喜欢
  • 2023-02-23
  • 2021-05-23
  • 2021-06-25
  • 2021-04-05
  • 2021-12-26
  • 2022-02-17
  • 2022-12-23
相关资源
相似解决方案