Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Oracle Clob是否更改了数据的编码?_Python_Sql Server_Oracle_Encoding_Utf 8 - Fatal编程技术网

Python Oracle Clob是否更改了数据的编码?

Python Oracle Clob是否更改了数据的编码?,python,sql-server,oracle,encoding,utf-8,Python,Sql Server,Oracle,Encoding,Utf 8,我将一些中文内容作为CLOB插入到我的Oracle中,当我用Python检索它时,它看起来几乎相同,但特别是中文内容似乎略有不同 这是UTF-8,所有内容都在Python调试器中检查: What goes in ? "\xe4\xb8\xad\xe6\x96\x87" What comes out ? "\xe4\xb8\xad\xe6\xbf\xbf" CLOB是否改变了与UTF-8非常相似的数据编码? 它仍然显示为中文字体,但并非所有字符都相同? 对于CLOB是否有强制执行UTF-

我将一些中文内容作为CLOB插入到我的Oracle中,当我用Python检索它时,它看起来几乎相同,但特别是中文内容似乎略有不同

这是UTF-8,所有内容都在Python调试器中检查:

What goes in ?   "\xe4\xb8\xad\xe6\x96\x87" 
What comes out ? "\xe4\xb8\xad\xe6\xbf\xbf" 
CLOB是否改变了与UTF-8非常相似的数据编码? 它仍然显示为中文字体,但并非所有字符都相同? 对于CLOB是否有强制执行UTF-8的措施? 为什么我在MSSQL中使用varchar时没有涉及到这些问题?varchar只是将字节流按原样转储,而不必担心编码问题吗?一切都是开箱即用的。我希望如此,因为我认为DB不应该担心编码。为什么CLOB不同


我的Oracle字符集是WE8MSWIN1252

Oracle和SQL Server中使用的数据库字符集是什么?您是否在SQL Server中将列定义为varchar或nvarchar?根据我的经验,编码问题通常在数据发送到数据库之前发生,例如HTML输入表单、URL编码etcMSSQL工作正常,并且它具有VARCHAR。同一列的Oracle数据类型为CLOB。我正在检查这个@Python级别,所以在保存到DB之前,似乎一切都很好,而且它在MSSQL中工作正常,但在Oracle中工作不正常,这让我觉得这与Oracle CLOB有关。VARCHAR是否需要有一个字符集,还是只是逐字节转储输入的内容?每个字符列char、VARCHAR、nvarchar、clob都有一个字符集。在Oracle中,您可以在创建实例时定义它。在SQL Server中,您可以在创建数据库时定义它。能否正确保存汉字取决于该列使用的字符集。我更新了我的字符集有没有办法获得UTF-8字节?到目前为止,我看不出我们在Python中做了任何可能改变数据的事情。WE8MSWIN1252是一个单字节字符集。您无法在那里存储多字节字符。您必须更改Oracle中的字符集。不幸的是,这不能在线完成。您需要转储数据库,使用AL32UTF8字符集在Oracle中创建一个新的database=instance,然后重新加载转储。