python - 如何将印地语插入mysql?
问题描述
我想将印地语句子插入 mysql 数据库。但是我遇到了一个问题:插入mysql数据库的印地语语句变成了乱码。我已经将编码格式设置为UTF-8,那么我的代码如下。非常感谢!
#coding = utf-8
import MySQLdb
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
dbs = MySQLdb.connect(host='x.x.x.x', user='x', passwd = 'x', db='x',port=x)
cursor = dbs.cursor()
with open('hindi.wiki.set','r') as file:
count = 1
for line in file.readlines():
if count == 5:
break
sql = """insert into `lab_ime_test_set_2` (id_, type_, lang_, text_, anno_) values(%s, %s, %s,'%s', %s)""" % ("null", "'wiki'", "'hindi'", MySQLdb.escape_string(line.strip()), "'not_anno'")
try:
cursor.execute(sql)
dbs.commit()
except Exception as eh:
print("error")
print("total count", count)
cursor.close()
dbs.close()
因为 sql 可以在 navicat for mysql 中运行,并且可以正确显示印地语。但是当我运行这段代码时,句子也可以插入到mysql数据库中,但不能正确显示。例如“सà¤,तरे के जायके वाले à¤®à ¥,ल टà¥^à¤,ग को 1957 मेà¤, जनरल फà¥,ठ¡à¥à¤¸ कॉरपोरेशन के लिठवत लियम à¤"
解决方案
推荐阅读
- mysql - 如何在 Laravel 列中获取不同 ID/元素的总和?
- flutter - 在 Flutter 中添加 Profile 图标
- javascript - 从背景颜色中获取 RGB 分量
- tensorflow - 使用神经网络的一类图像分类
- unit-testing - Spock交互验证忽略对Mock方法的调用
- c# - 无法从 ASP.NET IdentityUserRole 中提取具有角色的用户列表
- c# - 您可以将 X 值更改为 MySQL 行中的相应值吗?
- wordpress - 选择本地取货作为交货时未出现 Woocommerce 税
- java - Gradle 插件:无法将 Java.io.File 类的“A.txt”转换为 org.gradle.api.file.Property 类
- python - 使用 python 标记日志到 gcp 日志查看器