处理包含“问号”(�) 的字符串时出现编码问题

2024-04-17

我正在解析响应中的一些网页内容HttpWebRequest.

该网页内容正在使用字符集ISO-8859-1当解析它并最终从响应中得到所需的单词时,我收到了string带有这样的问号我想知道将其转换回可读的正确方法string.

所以,我尝试的是转换当前单词encoding into UTF-8像这样:

(我想知道是否UTF-8可以解决我的问题)

string word = "ESPA�OL";

Encoding iso = Encoding.GetEncoding("ISO-8859-1");
Encoding utf = Encoding.GetEncoding("UTF-8");

byte[] isoBytes = iso.GetBytes(word);
byte[] utfBytes = Encoding.Convert(iso, utf, isoBytes);

string utfWord = utf.GetString(utfBytes);

Console.WriteLine(utfWord);

然而,utfWord可变输出ESPA?OL这仍然是错误的。正确的输出应该是ESPAÑOL.

如果可能的话,有人可以给我正确的指示来解决这个问题吗?


有问题的词是“ESPAÑOL”。这可以在 ISO-8859-1 中正确编码,因为单词中的所有字符都是ISO-8859-1 中表示 http://en.wikipedia.org/wiki/ISO/IEC_8859-1.

您可以使用以下简单程序亲自查看这一点:

using System;
using System.Diagnostics;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            string original = "ESPAÑOL";
            byte[] iso_8859_1 = enc.GetBytes(original);
            string roundTripped = enc.GetString(iso_8859_1);
            Debug.Assert(original == roundTripped);
            Console.WriteLine(roundTripped);
        }
    }
}

这告诉您,您需要正确诊断错误字符的来源。当你拥有 � 角色时,为时已晚。信息已丢失。 � 字符的存在表明,在某个时刻,执行了到不包含字符 Ñ 的字符集的转换。

从 ISO-8859-1 到 Unicode 编码的转换将正确处理“ESPAÑOL”,因为该单词可以用 ISO-8859-1 进行编码。

最可能的解释是,在此过程中的某个地方,文本“ESPAÑOL”被转换为不包含字母 Ñ 的字符集。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理包含“问号”(�) 的字符串时出现编码问题 的相关文章

随机推荐

  • JavaScript 正则表达式 - g 修饰符不起作用[重复]

    这个问题在这里已经有答案了 我有以下代码 var str 4 shnitzel 5 ducks var rgx new RegExp 0 9 g console log rgx exec str chrome 和 firefox 上的输出是
  • 如果Bokeh有很多图表,输出文件很重并且系统很慢

    我使用散景 我非常喜欢Bokeh 因为Bokeh有很多图表并且输出文件非常简单 我在半导体公司工作 有时我会分析半导体 数据 我有很多数据 我制作了很多图表 可能是 1000 4000 次图表操作 我用Bokeh来制作图表 但是Bokeh很
  • 在 PowerShell 中检查路径是否存在的更好方法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 PowerShell 中是否有更简洁且不易出错的方法来检查路径是否不存在 对于这样一个常见的用例来说 客观上来说太冗长了 if not Test
  • Symfony2 创建自己的编码器来存储密码

    我是 Symfony2 的新手 我可能有一个关于在数据库中编码用户密码的简单问题 我想以这种方式编码并存储在数据库中我的用户密码 encoded password salt sha1 salt raw password 我找到了各种编码器
  • 是Pythonic吗:命名lambdas

    我开始欣赏 python 中 lambda 表达式的价值 特别是在函数式编程方面 map 函数返回函数 https stackoverflow com a 16509 1533474等等 但是 我也在函数中命名 lambda 因为 我多次需
  • fseek() 按行而不是字节?

    我有一个可以逐行解析大文件的脚本 当它遇到无法处理的错误时 它会停止 通知我们解析的最后一行 这真的是寻找文件中特定行的最佳 唯一方法吗 fseek 在我的情况下不可用
  • ASP.NET 日期和时间选择器?

    我将 ASP NET 2 0 与 SQL Server 2005 结合使用 我希望用户选择日期和时间 然后将这些值保存到数据库中 在 VS 中 我可以使用日历控件来获取日期 但是处理用户选择的日期以及用户还必须从控件中选择的时间有什么好处
  • 如何删除 Rmd 输出到 PDF 中代码块之间的空白?

    如何删除图表末尾与下一个图表之间的多余空白 我有一个闪亮的应用程序 运行参数化的 Rmd 输出为 html 和 PDF html 很好 但 PDF 中有太多空白 我应该将所有内容都放入两页中 因此边距 几何形状很软 但是我需要在第 1 页底
  • 使用 LaTeX,如何在每个部分的末尾提供参考文献列表? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想为每个部分生成参考书目 并将其放在该部分的末尾 当我现在这样做时 它会生成完整的参考书目并将其放置在每个部分之后 有没有办法可以做到这一点 建议h
  • AFJSONRequestOperation 数组填充,但无法在成功块之外填充 NSLog 内容

    以下代码摘自本教程 http mobile tutsplus com tutorials iphone ios sdk afnetworking 我以前用过这个片段 但之前从未注意到这个问题 数组内容的 NSLog 在委托方法中打印 但不在
  • Socket IO 涉及磁盘 IO 吗?

    如果一个进程通过套接字向同一台机器上的另一个进程发送数据 传输过程中发生磁盘读 写的可能性有多大 似乎有一个套接字文件类型 如果有空闲内存 这些文件是否保证在内存中 不直接 TCP UDP 网络套接字 本地主机或 UNIX 域套接字将在内存
  • 使用 NumPy 的数据类型大小

    在 NumPy 中 我可以通过以下方式获取特定数据类型的大小 以字节为单位 datatype itemsize or datatype nbytes 例如 np float32 5 itemsize 4 np float32 5 nbyte
  • 如何从给定 C# 链接的特定 GitHub 存储库中获取文件列表?

    如何从 GitHub 链接获取文件列表 例如 来自此 GitHub 存储库链接 https github com crs2007 ActiveReport tree master ActiveReport SQLFiles 我们可以看到有S
  • 自动执行 rake 任务以在 Heroku 上启动时运行?

    假设有一个任务 rake startupscript 它应该在应用程序启动时运行 我们如何在heroku上自动化它 我知道有一个 heroku 调度程序 但它会每 10 分钟运行一次任务 而不是只在启动时运行一次 我也知道Procfile
  • 如何撤消“git add --intent-to-add”

    当我跑步时git add intent to add 所有未跟踪的文件都从 未跟踪的文件 更改了状态 git status s showed 到 未暂存提交的更改 git status s现在显示A 现在 每当我跑步时git diff我也看
  • GNU Radio OOT 模块 AttributeError:“模块”对象没有属性“MME_cpp”

    我知道这个问题以前曾被问过 但我没有找到有用的解决方案 完整的错误是 Executing home mint Documents test sensor cycl test top block py Using Volk machine a
  • 如何标记条件编译的use语句? [复制]

    这个问题在这里已经有答案了 是否可以将某些包含标记为仅包含在相关操作系统中 例如 你可以这样做 cfg unix use std os unix io IntoRawFd cfg windows https doc rust lang or
  • 在有关资源、主题和章节的规范化数据库中使用 GROUP BY 进行 JOIN

    我已经规范化了我的数据库 但似乎无法以正确的方式返回我正在寻找的数据 我有 5 张桌子 资源 5 个资源 主题 10 个主题 章节 10 章 主题到资源 18 个主题到资源链接 主题到章节 18 个主题到章节的链接 看看这个SQL小提琴 h
  • ASP.net:ClientScript.RegisterClientScriptBlock 在加载 jQuery 之前触发

    我最近查看的一些继承代码中出现了有趣的问题 我正在尝试向项目添加压缩模块 它加载所有 JS 和 CSS 文件 组合它们 缩小它们 并压缩它们 我尝试了多种解决方案 但它们都有一个致命的问题 我有一些 javascript 通过 Master
  • 处理包含“问号”(�) 的字符串时出现编码问题

    我正在解析响应中的一些网页内容HttpWebRequest 该网页内容正在使用字符集ISO 8859 1当解析它并最终从响应中得到所需的单词时 我收到了string带有这样的问号 我想知道将其转换回可读的正确方法string 所以 我尝试的