可靠的方法读取Unicode和ISO88591字符

本文关键字:ISO88591 字符 Unicode 读取 方法 | 更新日期: 2023-09-27 18:11:36

我在我的应用程序中有一个json文件,我可以读取并从读取中获得字符串作为UTF-8。

using (StreamReader file = File.OpenText(filePath))
 {
     string json = file.ReadToEndAsync().Result;
 }

我有一些RegEx形式的特殊字符,包括/:@~{+_&%$

这很好。所有工作。

然而,在RegEx中包含的json文件中也有£符号的实例。当使用代码about(默认为UTF-8)读取json文件时,会出现£字符,并在字符串中显示为黑色钻石,中间有一个白色问号;因此,由于RegEx不正确,某些条件会失败。

这样做的原因是编码,而UTF-8不能理解这一点,因为它应该(据我所知)使用ISO-8859-1格式读取。

现在,当我改变我的代码来读取JSON文件使用这个标准

using (StreamReader file = new StreamReader(entityFilePath, Encoding.GetEncoding("iso-8859-1")))

我在正则表达式中得到字符串的正确值£。

但是,如果我想在json文件中使用其他Unicode值,例如ÁÉÍÓÚáéíóú,使用ISO-8859-1读取它将导致它们被错误地检索和解释。

我的问题是,我如何安全可靠地读取我的json文件检索完整的所有文本和完整的所有字符,包括£符号?

亲切的问候

可靠的方法读取Unicode和ISO88591字符

Timothy Shields给出的答案:

如何在文本框中插入符号(英镑,欧元,版权)

'u00A3是磅号,£。

我将上述十六进制代码添加到JSON文件中,所有测试都通过了。