昨天用python連線mysql時遇到了乙個錯誤:
'latin-1' codec can't encode characters in position 36-37: ordinal not in ra......
調式乙個多鐘頭才發現原來是編碼的問題,
於是檢視mysql的編碼如下:
問題就出在這,以上三個設定編碼是gbk,比如用python連線資料庫,查詢操作時可能出現中文讀取亂碼,插入操作時會報錯:'latin-1' codec can't encode characters in position 36-37: ordinal not in ra......
這裡我們只需將編碼格式修改為utf8即可,
可直接在命令列中執行
但是採用這種方式修改編碼只能在當前有效,也就是說當你重新啟動mysql時就會失效,還是原來的gbk編碼。
如果想要utf8編碼永久有效,我們可以修改配置檔案my.ini
如果是預設安裝,該檔案位於mysql安裝目錄下:
如果沒有找到,就是在windows下隱藏了,可以直接在路徑欄裡輸入路徑,或者顯示隱藏檔案。
用記事本編輯my.ini
在[client]下新增
default-character-set=utf8
如果已存在只需將gbk修改為utf8
在[mysql]下新增
在[mysqld]下新增
儲存重啟mysql即可。
還有要提一下:
連線時可以這樣寫
database=pymysql.connect(host="localhost",user="root",password="root",
db="phonebook",port=3306,charset="utf8")
java連線mysql出現亂碼
插入資料時出現亂碼,大致修改點為 1.my.ini中 client 下面新增 default character set utf8 2.my.ini中 mysqld 下面新增 default character set utf8 3.jdbc的url使用 jdbc mysql localhost 3...
Mybatis 之連線Mysql出現亂碼
首先排查資料庫連線是否指定編碼。jdbc mysql 如果資料庫連線指定了編碼還是出現亂碼。檢視資料庫編碼。改變mysql資料庫的預設編碼 安裝mysql資料庫時的預設編碼是latin1,實際使用時可能要使用其他編碼。下文描述如何將預設編碼改為utf8 1 首先修改mysql的配置檔案 etc my...
解決php連線mysql出現亂碼辦法講解
用phpmyadmin新增mysql資料庫,然後用php運算元據庫出現亂碼的解決辦法 1 確認phpmyadmin用的mysql字符集為utf 8 unicode utf8 mysql連線校對為utf8 general ci,language為中文 chinese simplified 3 在php...