gpt4 book ai didi

c# - .NET : StreamReader does not recognize ° characters

转载 作者:行者123 更新时间:2023-11-30 21:17:07 25 4
gpt4 key购买 nike

我正在尝试运行 RegEx 来定位学位字符(\u00B0|\u00BA 学位以及定位其他形式的 ' -->\u00B4)。我正在读取像这样的纬度和经度 DMS 坐标:12º30'23.256547"S

问题出在我读取文件的方式上,因为我可以手动注入(inject)如下所示的字符串(格式为纬度、经度、描述):

const string myTestString = @"12º30'23.256547""S, 12º30'23.256547""W, Somewhere";

并且我的正则表达式按预期匹配 - 我还可以看到 º 值,当我使用流式阅读器时,我看到所有无法识别的字符都有一个 �(º 符号作为这些无法识别的字符之一包含在内)

我试过:

            var sr = new StreamReader(dlg.File.OpenRead(), Encoding.UTF8);
var sr = new StreamReader(dlg.File.OpenRead(), Encoding.Unicode);
var sr = new StreamReader(dlg.File.OpenRead(), Encoding.BigEndianUnicode);

除了默认的 ASCII。

无论我以何种方式读取文件,我最终都会得到这些特殊字符。任何建议将不胜感激!!

最佳答案

您尝试过各种编码...但可能不是正确的。您不应该只是猜测编码 - 找出它真正使用的编码,然后使用它。 StreamReader 本身绝对没问题。它可以处理您提供的任何编码,但它必须与写出文件时使用的编码相匹配。

文件从何而来?写出来的是什么?

如果它是用记事本写出来的,它很可能使用Encoding.Default,这是系统的默认编码(即它会因机器而异) .如果可能的话,更改正在创建文件的任何内容以使用单一标准编码 - 就我个人而言,我是 UTF-8 的忠实粉丝。

关于c# - .NET : StreamReader does not recognize ° characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4969276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com