日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql数据库连接地址utf8_在Python中连接到MySQL数据库时UTF8不工作

發布時間:2023/12/10 数据库 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql数据库连接地址utf8_在Python中连接到MySQL数据库时UTF8不工作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在努力使Python更好地使用UTF-8編碼的MySQL數據庫,例如,挪威字符???。我找了好幾個小時,但沒能找到像預期的那樣有效的東西。以下是從數據庫中提取的示例表:mysql> select * from my_table;

+----+-----------------+

| id | shop_group_name |

+----+-----------------+

| 1 | Frukt og gr?nt |

| 2 | Kj?tt og fisk |

| 3 | Meieriprodukter |

| 4 | Frysevarer |

| 5 | Bakevarer |

| 6 | T?rrvarer |

| 7 | Krydder |

| 8 | Hermetikk |

| 9 | Basisvarer |

| 10 | Diverse |

+----+-----------------+

10 rows in set (0.00 sec)

所以數據肯定是UTF-8編碼的。但是,當運行下面的Python代碼時,它不會給出int UTF-8的輸出。有什么問題嗎?它與壓縮無關;cursor.execute(query)返回的元組已經搞亂了編碼。在

^{pr2}$

allResults字典現在包含:{

'my_table': [

{

'id': 1,

'shop_group_name': 'Fruktoggr\xf8nt'

},

{

'id': 2,

'shop_group_name': 'Kj\xf8ttogfisk'

},

{

'id': 3,

'shop_group_name': 'Meieriprodukter'

},

{

'id': 4,

'shop_group_name': 'Frysevarer'

},

{

'id': 5,

'shop_group_name': 'Bakevarer'

},

{

'id': 6,

'shop_group_name': 'T\xf8rrvarer'

},

{

'id': 7,

'shop_group_name': 'Krydder'

},

{

'id': 8,

'shop_group_name': 'Hermetikk'

},

{

'id': 9,

'shop_group_name': 'Basisvarer'

},

{

'id': 10,

'shop_group_name': 'Diverse'

}

]

}

我真的看不出我做錯了什么。我在Ubuntu中用Python2.7.6運行測試。在

UTF-8更改表

我嘗試將表更改為UTF-8,方法是轉儲數據庫,更改轉儲文件中的字符集和排序規則,然后將其插入到新的數據庫中。例如,轉儲文件的這一部分對應于上面的示例。事情是這樣的:DROP TABLE IF EXISTS `my_table`;

/*!40101 SET @saved_cs_client = @@character_set_client */;

/*!40101 SET character_set_client = utf8 */;

CREATE TABLE `my_table` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`shop_group_name` varchar(100) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;

/*!40101 SET character_set_client = @saved_cs_client */;

我把這部分改成:DROP TABLE IF EXISTS `my_table`;

/*!40101 SET @saved_cs_client = @@character_set_client */;

/*!40101 SET character_set_client = utf8 */;

CREATE TABLE `my_table` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`shop_group_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;

/*!40101 SET character_set_client = @saved_cs_client */;

然而,這仍然行不通。輸出仍與上述相同。運行SELECT CHARACTER_SET_NAME FROM information_schema.columns WHERE TABLE_NAME = 'my_table';現在生成{}。在

總結

以上是生活随笔為你收集整理的mysql数据库连接地址utf8_在Python中连接到MySQL数据库时UTF8不工作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。