【问题标题】:Parsing UTF8 encoded data from a Web Service解析来自 Web 服务的 UTF8 编码数据
【发布时间】:2011-06-08 00:05:26
【问题描述】:

我正在解析来自http://toutankharton.com/ws/localisations.php?l=75的日期

如您所见,它已编码 (<name>Paris 2ème</name>)。

我的代码如下:

using (var reader = new StreamReader(stream, Encoding.UTF8))
            {
                var contents = reader.ReadToEnd();

                XElement cities = XElement.Parse(contents);

                    var t = from city in cities.Descendants("city")
                                                    select new City
                                                    {
                                                        Name = city.Element("name").Value,
                                                        Insee = city.Element("ci").Value,
                                                        Code = city.Element("code").Value,
                                                    };
            }

new StreamReader(stream, Encoding.UTF8) 还不够吗?

【问题讨论】:

  • 你得到了什么意想不到的结果?读取为 UTF-8 似乎工作正常。
  • 这座城市看起来像“巴黎二楼”

标签: c# encoding


【解决方案1】:

如果您采用 utf8 字节并使用不兼容的编码(如 ISO8859-1)输出它们,这看起来会发生这种情况。你知道真正的性格是什么吗?回过头来,使用 ISO8859-1 获取字节数组,并使用 UTF8 读取它,得到“è”。

var input = "è";
var bytes = Encoding.GetEncoding("ISO8859-1").GetBytes(input);
var realString = Encoding.UTF8.GetString(bytes);

【讨论】:

    猜你喜欢
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    相关资源
    最近更新 更多