当前位置: 代码迷 >> python >> 某些utf字符未显示在浏览器上,并且python脚本失败
  详细解决方案

某些utf字符未显示在浏览器上,并且python脚本失败

热度:42   发布时间:2023-06-14 08:44:34.0

我从Windows 7上的C#应用??程序生成了一个SQL脚本。名称条目具有utf8字符。 它可以在Windows机器上找到,我在其中使用python脚本填充数据库。 现在,同一脚本在Linux平台上因抱怨那些特殊字符而失败。

当我在Windows 7上生成包含utf字符的XML文件但在浏览器(IE,Firefox)上无法显示时,发生了类似的事情。

我曾经在Windows XP上生成过这样的脚本,它在任何地方都能完美运行。

请举一个在“名称条目”中带有“ utf8字符”的脚本的小例子。 您确定它们是utf8而不是某些像`cp1252'这样的Windows编码吗? 是什么让您确定? 在命令提示符下的Python中尝试以下操作:

... python -c "print repr(open('small_script.sql', 'rb').read())"

输出中有趣的部分是它使用\\xhh (其中h是任何十六进制数字)表示非ASCII字符的地方,例如\\xc3\\xa2是带有抑扬音的小a的UTF-8编码。 向我们展示此类输出的代表性示例。 还请告诉我们您从该示例脚本获得的确切错误消息。

更新:看来您具有以cp1252或类似格式编码的数据( Latin1 aka ISO-8859-1在Windows上像母鸡一样罕见)。 要使用Python将其导入UTF-8 ,您需要执行fixed_data = data.decode('cp1252').encode('utf8') ; 对于C#,我无能为力-您可能想问一个单独的问题。

假设您使用的是python,请确保您使用的是 。

例如:

s = "Hello world"          # Regular String
u = u"Hello Unicode world" # Unicdoe String

编辑:
这是从链接站点读取UTF-8文件的示例:

import codecs
fileObj = codecs.open( "someFile", "r", "utf-8" )
u = fileObj.read() # Returns a Unicode string from the UTF-8 bytes in the file