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

时间:2016-10-05 16:48:10

标签: c# json regex unicode

我的应用程序中有一个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")))

我在RegEx中的字符串中得到了正确的£out值。

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

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

亲切的问候

1 个答案:

答案 0 :(得分:0)

Timothy Shields在这篇文章中找到的答案:

How to insert a Symbol (Pound, Euro, Copyright) into a Textbox

\ u00A3是英镑符号,£。

我将上面的十六进制代码添加到JSON文件中并且所有测试都已通过。