C# 某些utf字符不会显示在浏览器上,并且无法使用python脚本

C# 某些utf字符不会显示在浏览器上,并且无法使用python脚本,c#,python,windows-7,utf-8,character-encoding,C#,Python,Windows 7,Utf 8,Character Encoding,我从Windows7上的C#应用程序生成了一个SQL脚本。名称条目具有utf8字符。它在Windows机器上工作,我使用python脚本填充数据库。现在,同样的脚本在Linux平台上失败,抱怨这些特殊字符 当我在Windows7上生成包含utf字符的XML文件,但在浏览器(如Firefox)上显示失败时,也发生了类似的事情 我曾经在Windows XP上生成过这样的脚本,它在任何地方都能完美运行。如果您使用的是python,请确保您使用的是python 例如: s = "Hello world"

我从Windows7上的C#应用程序生成了一个SQL脚本。名称条目具有utf8字符。它在Windows机器上工作,我使用python脚本填充数据库。现在,同样的脚本在Linux平台上失败,抱怨这些特殊字符

当我在Windows7上生成包含utf字符的XML文件,但在浏览器(如Firefox)上显示失败时,也发生了类似的事情


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

如果您使用的是python,请确保您使用的是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

请给出一个在“名称条目”中包含“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#——您可能想问一个单独的问题。

下面是上面的命令INSERT-INTO-customer(id,name)值(2,'Mic M\xfcnchen')产生的输出\r\n.实际名称是“Mic München”,谢谢。这意味着它不是UTF-8。在UTF-8中,
u
将是
\xc3\xbc
<代码>\xfc表示它是拉丁语-1或cp1252或其他编码(相当多的单字节编码使用该字符的
\xfc
。没错,我找到了它。该文件似乎在cp1252中。现在我如何强制C#应用程序以UTF-8格式保存名称?或者如何将Windows 7编码从cp1252更改为UTF-8?我找到了强制在C#应用程序中创建的文件使用UTF-8的方法。我们需要设置在执行新StreamWriter时将参数编码为encoding.UTF8