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不工作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 了美国,国债超GDP的国家至少还有5个,
- 下一篇: sqlserver连接字符串_10分钟使