首先要確保pymysql的配置檔案編碼為utf8,否則就會報出以下錯誤
unicodeencodeerror: 'latin-1' codec can't encode characters in position 9-13: ordinal not in range(256)
配置檔案在pymysql模組對應的安裝目錄,我的
linux下為/usr/local/lib/python3.5/dist-packages/pymysql
windows下為d:\python35\lib\site-packages/pymysql
我們開啟該目錄,會發現乙個名為connections.py的檔案,然後我們通過編輯器開啟檔案,通過搜尋"charset=",發現如下所示的**:
def __init__(self, host=none, user=none, password="",
database=none, port=0, unix_socket=none,
charset='', sql_mode=none,
read_default_file=none, conv=none, use_unicode=none,
client_flag=0, cursorclass=cursor, init_command=none,
connect_timeout=10, ssl=none, read_default_group=none,
compress=none, named_pipe=none, no_delay=none,
autocommit=false, db=none, passwd=none, local_infile=false,
max_allowed_packet=16*1024*1024, defer_connect=false,
auth_plugin_map={}, read_timeout=none, write_timeout=none,
bind_address=none, binary_prefix=false):
**中,charset引數可以設定編碼,此時我們將編碼設定為"utf8"(注意不是utf-8),修改後儲存,如下所示:
def __init__(self, host=none, user=none, password="",
database=none, port=0, unix_socket=none,
charset='utf8', sql_mode=none,
read_default_file=none, conv=none, use_unicode=none,
client_flag=0, cursorclass=cursor, init_command=none,
connect_timeout=10, ssl=none, read_default_group=none,
compress=none, named_pipe=none, no_delay=none,
autocommit=false, db=none, passwd=none, local_infile=false,
max_allowed_packet=16*1024*1024, defer_connect=false,
auth_plugin_map={}, read_timeout=none, write_timeout=none,
bind_address=none, binary_prefix=false):
修改了pymysql的配置檔案之後,可能會遇到pymysql.err.internalerror
的錯誤,出現該錯誤的原因是mysql表中各列的編碼問題,
將編碼修改為utf8後,問題完美解決。
pymysql插入資料
在使用pymysql進行提交資料的時候,必須使用事務進行提交,如下 import pymysql 連線資料庫 db pymysql.connect host ip port port,user root password root charset utf8 database db name 建立游標...
php插入資料 mysql 中文亂碼
1 在php頁面中寫入以下內容 mysql query set names utf8 connect 或者 mysql set charset utf8 conn 2 資料庫一定是和php頁面具有相同的編碼格式,此處用utf8 3 在php內容中加入 echo 能夠有效的改變顯示頁面時出現亂碼,如果...
oracle插入資料中文亂碼問題
oracle插入資料中文亂碼問題解決 1.檢視伺服器端編碼 select userenv language from dual 我實際查到的結果為 american america.zhs16gbk 2.執行語句 select from v nls parameters 檢視第一行中paramete...