Python - 将unicode字符串写入文件&美丽的汤

时间:2013-01-20 18:57:12

标签: python unicode beautifulsoup

我正在使用BeautifulSoup来解析一些XML文件。此文件中的一个字段经常使用Unicode字符。我尝试使用encode。将unicode写入文件失败。

到目前为止,这个过程基本上是:

  1. 获取名称

    gamename = items.find('name')。string.strip()

  2. 然后将名称合并到一个列表中,该列表稍后会转换为字符串:

    stringtoprint = userid,gamename.encode('utf-8')#​​

    newstring =“INSERT INTO collections VALUES”+ str(stringtoprint)+“;” + “\ n” 个

  3. 然后将该字符串写入文件。

    listofgamesowned.write(newstring.encode( “UTF-8”))

    似乎我不必经常。编码。我在解析出名称后直接尝试编码,例如gamename = items.find('name').string.strip().encode('utf-8') - 然而,这似乎不起作用。

    目前 - 'Uudet L \ xc3 \ xb6yt \ xc3 \ xb6retket'

    正在打印并保存,而不是UudetLöytöretket。

    如果这是我生成的字符串,那么我会使用something.write(u'Uudet L\xc3\xb6yt\xc3\xb6retket');但是,它是嵌入字符串中的一个元素。

1 个答案:

答案 0 :(得分:1)

Unicode是字符串的内存表示形式。当你写出或读入时,你需要编码和解码。

Uudet L\xc3\xb6yt\xc3\xb6retketutf-8的{​​{1}}编码版本,因此您想要写出来。如果要从文件中读取字符串,则需要对其进行解码。

Uudet Löytöretket

请记住在您阅读之后立即进行编码并立即解码。