Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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/1/oracle/9.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 如果我知道只使用拉丁-1字符,是否可以将UTF8编码字符插入拉丁-1表格?_Python_Mysql_Utf 8 - Fatal编程技术网

Python 如果我知道只使用拉丁-1字符,是否可以将UTF8编码字符插入拉丁-1表格?

Python 如果我知道只使用拉丁-1字符,是否可以将UTF8编码字符插入拉丁-1表格?,python,mysql,utf-8,Python,Mysql,Utf 8,我在一个数据库中有10个表。其中9个仅使用拉丁语1支持的标准ascii 1字节字符存储数据。其中1个要求我存储仅受UTF8支持的特殊字符。我想使用相同的MySQL连接对象(使用Python的PyMySQL库)来填充所有10个表 以前,在创建MySQL连接对象时,我没有指定字符集,它默认为Latin-1。当我只填充9个拉丁-1表时,这很好。现在填充UTF8表,通过将参数charset='utf8mb4'传递给PyMySQL连接对象函数,修改了连接对象: # Connect to the datab

我在一个数据库中有10个表。其中9个仅使用拉丁语1支持的标准ascii 1字节字符存储数据。其中1个要求我存储仅受UTF8支持的特殊字符。我想使用相同的MySQL连接对象(使用Python的PyMySQL库)来填充所有10个表

以前,在创建MySQL连接对象时,我没有指定字符集,它默认为Latin-1。当我只填充9个拉丁-1表时,这很好。现在填充UTF8表,通过将参数charset='utf8mb4'传递给PyMySQL连接对象函数,修改了连接对象:

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='user',
                             password='passwd',
                             db='db',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)
现在我确信,当插入我的UTF8 MySQL表时,我的所有数据都存储得很好。但是,我不确定在使用我的UTF8连接对象并将其插入Latin-1表时是否会出现问题。在我的第一轮测试之后,一切看起来都很棒


有什么我忽略了的吗?在拉丁-1表中插入UTF8编码字符是否存在任何潜在问题

Hi utf8和latin 1都是简单的编码,它们支持某些字符,但这两个字符都不包含,因此可能会出现问题。如果您传递的utf8数据不是拉丁语1。在此过程中,对occour进行双重编码。

是一个将utf8插入拉丁语的链接。

Hi utf8和拉丁语1都是简单的编码,它们支持某些字符,但这两个字符中都不包含,因此可能会出现问题。如果您传递的utf8数据不是拉丁语1。在此过程中,对occour进行双重编码。

是一个将utf8插入拉丁语的链接

可以这样做。但是你必须正确设置一些东西,否则你会得到任何形式的垃圾

如果客户端中的字节是UTF-8编码的,那么必须告诉MySQL这一事实。这通常在连接字符串上完成。您的
charset='utf8mb4'
连接参数就是这样做的。以下是一些特定于Python的提示:

同时,表中的列可以是latin1或utf8(因为您可以确定数据仅限于它们之间常见的字符)

一个字符示例:
ee
在拉丁语中是hex
E9
,在MySQL的utf8(或utf8mb4)中是
C3A9
。如果正确说明客户端编码,则转换将在插入和选择过程中进行

(出于您的目的,utf8和utf8mb4都可以工作。)


如果您还有其他问题,请参阅和/或提供
SHOW CREATE TABLE
和一些有问题的字符的十六进制。

可以这样做。但是你必须正确设置一些东西,否则你会得到任何形式的垃圾

如果客户端中的字节是UTF-8编码的,那么必须告诉MySQL这一事实。这通常在连接字符串上完成。您的
charset='utf8mb4'
连接参数就是这样做的。以下是一些特定于Python的提示:

同时,表中的列可以是latin1或utf8(因为您可以确定数据仅限于它们之间常见的字符)

一个字符示例:
ee
在拉丁语中是hex
E9
,在MySQL的utf8(或utf8mb4)中是
C3A9
。如果正确说明客户端编码,则转换将在插入和选择过程中进行

(出于您的目的,utf8和utf8mb4都可以工作。)


如果您还有其他问题,请参阅和/或提供
SHOW CREATE TABLE
和某些违规字符的十六进制。

但我的拉丁语-1表格将永远不会包含任何特殊字符。这仍然是一个问题吗?这些表格中存储的唯一字符是英语字母表中的26个标准字母和数字0-9。是的,你可以使用它,但我的拉丁-1表格中永远不会包含任何特殊字符。这仍然是一个问题吗?这些表格中存储的唯一字符是英语字母表中的26个标准字母和数字0-9。是的,你可以使用它