当前位置: 首页 > 面试题库 >

Python显示特殊字符

慕项明
2023-03-14
问题内容

我知道有关此问题的线程很多,但我还没有找到解决我问题的方法。

我试图打印一个字符串,但是在打印时不显示特殊字符(例如æ,ø,å,ö和ü)。当我使用repr()此命令打印字符串时,我得到的是:

u'Von D\xc3\xbc'u'\xc3\x96berg'

有谁知道我该如何将其转换为Von DüÖberg?对我来说重要的是,不要忽略这些字符,例如myStr.encode("ascii", "ignore")

编辑

这是我使用的代码。我使用BeautifulSoup抓取一个网站。<td>表(<table>)中单元格()的内容被放入变量中name。这是包含无法打印的特殊字符的变量。

web = urllib2.urlopen(url);
soup = BeautifulSoup(web)
tables = soup.find_all("table")
scene_tables = [2, 3, 6, 7, 10]
scene_index = 0
# Iterate over the <table>s we want to work with
for scene_table in scene_tables:
    i = 0
    # Iterate over < td> to find time and name
    for td in tables[scene_table].find_all("td"):
        if i % 2 == 0:  # td contains the time
            time = remove_whitespace(td.get_text())
        else:           # td contains the name
            name = remove_whitespace(td.get_text()) # This is the variable containing "nonsense"
            print "%s: %s" % (time, name,)
        i += 1
    scene_index += 1

问题答案:

预防胜于治疗。您需要找出垃圾是如何产生的。请编辑您的问题以显示创建该问题的代码,然后我们可以帮助您解决问题。好像有人做了:

your_unicode_string =  original_utf8_encoded_bytestring.decode('latin1')

解决方法是简单地逆转该过程,然后进行解码。

correct_unicode_string = your_unicode_string.encode('latin1').decode('utf8')

更新 根据您提供的代码,可能的原因是该网站声明它以ISO-8859-1(aka
latin1)编码,但实际上它是以UTF-8编码。请更新您的问题以向我们显示网址。

如果您无法显示它,请阅读BS文档;看来您需要使用:

BeautifulSoup(web, from_encoding='utf8')


 类似资料:
  • 问题内容: 我无法从网络服务向数据库发送或显示带有特殊字符的文本。在月食中,我已将字符编码设置为UTF-8,但仍然无法显示字符。例如像下面的代码的简单打印 要么 在控制台上的结果,如果我将其发送到数据库,则结果为??????。我如何使它正确显示在控制台上以及希望在数据库中正确显示 问题答案: 是的,它是XXI 世纪,我们仍在努力处理字符编码等问题。 我的第一个猜测是: 您的源文件编码可能是错误的(

  • 我无法将带有特殊字符的文本从webservice发送或显示到数据库。在我的eclipse上,我已经将字符编码设置为UTF-8,但它仍然不允许我显示字符。例如,一个简单的打印,如下面的代码 或 控制台上的结果是??????,如果我把它发送到我的数据库。我如何使它正确地显示在控制台上,希望在数据库中

  • 问题内容: 我已经多次看到这个问题,但是分辨率不高。我有以下字符串: 我想打印或回显字符串,但是输出将返回。所以我尝试或哪个输出和浏览器渲染。很明显,我想要它呈现此: 恢复 我正在使用UTF-8: 我在这里想念什么?为什么和输出的任何特殊字符?为了澄清,该字符串实际上是存储在数据库中的整个HTML文件。现实世界中的应用程序不只是那条小线。 问题答案: 经过多次激烈的讨论后,我对我想发布给可能遇到此

  • 问题内容: 我用来导入CSV文件。CSV文件中的一列包含一些包含分数的值(例如)。 我不需要对分数进行任何数学运算,因为这些值仅用于显示目的,因此我将列设置为。是可行的,但是当我查看SQL中的记录时,分数已用美分()代替,因此显示的文本是。 我有兴趣了解为什么会发生这种情况,以及对如何解决此问题的任何想法。该命令是: 问题答案: 您需要使用,它将字符串数据从Windows代码页1252转换为SQL

  • 模板的主页是关于我们的,它由 索引页基本上是flash容器做动画,但从其他页面加载文件,如新闻,关于我们,联系人,画廊。 首先,你们中的一些人会说,检查这些字符是否包括在flash文件中,以及字体是否支持它。因此,我打开index.fla文件,盗用这些字符,并选择字符范围内的所有字符。我通过打开photoshop并检查如果我在那里键入字符是否会正确显示,以确保字体支持特殊字符。 我还打开了inde

  • 关于字符集和替代字形 除键盘上可看到的字符之外,字体中还包括许多字符。根据字体的不同,这些字符可能包括连字、分数字、花饰字、装饰字、序数字、标题和文体替代字、上标和下标字符、变高数字和全高数字。字形是特殊形式的字符。例如,在某些字体中,大写字母 A 有几种形式可用,如花饰字或小型大写字母。 插入替代字形的方式有两种: 可以使用 “字形 ”面板来查看和插入任何字体中的字形。 可以使用 “OpenTy

  • 一些字符在 XML 中有特殊的含义,只能够通过其实体名称输入 字符 写法 缩写涵义 < &lt; less than > &gt; greater than & &amp; ampersand " &quot; quote ' &apos; apostrophe 空格 &nbsp; none-break space 通常需要使用实体输入的字符包括<、&、空格   XML 会将任意数量的空格解析为一

  • 问题内容: 我想知道如何在使用“ less”命令时查看特殊字符。例如,我想查看带有特殊符号的不可打印字符。例如,在“ vi”编辑器中,我使用“ set list on”来查看由美元“ $”字符表示的行终止字符。同样,我想使用“较少”命令来执行此操作。 我提到的Unix手册较少,但无济于事。 问题答案: 较少会查看其环境,以查看是否有一个名为LESS的变量 您可以在〜/ .profile之一(.ba