首頁 > 資料庫 > mysql教程 > 使用 Python 和 MySQL 時如何處理 Unicode 和編碼問題?

使用 Python 和 MySQL 時如何處理 Unicode 和編碼問題?

Patricia Arquette
發布: 2024-12-03 15:54:11
原創
194 人瀏覽過

How Can I Handle Unicode and Encoding Issues When Working with Python and MySQL?

Python 和MySql 中的Unicode 和編碼

在處理Unicode 資料時,Python 和諸如MySQL 需要仔細考慮編碼以避免下列錯誤編碼你遇到的那個。此錯誤訊息表示 JSON 資料中的字元未正確編碼以儲存在 MySQL 表中。

要解決此問題,您有兩個選擇:

修改資料庫表:

  • 您可以修改資料庫表以使用Unicode友善的字符集。更改 varbinary 列以使用 utf8mb4 或 utf8 General_ci 等類型。

在 Python 中處理編碼:

  • 使用 MySQLdb 的 connect() 函式使用 charset='utf8' 參數明確設定編碼。這可確保資料在傳送到資料庫之前以 UTF-8 進行編碼。
  • 確保負責讀取和插入資料的 Python 程式碼也使用 UTF-8 編碼。在將字串插入資料庫之前,對字串使用 .encode('utf-8') 方法將其轉換為 UTF-8。

以下是更新的 Python 程式碼片段,其中包含 charset 參數:

cur = conn.cursor()
cur.execute("SET NAMES utf8")
cur.execute("INSERT INTO yahoo_questions (question_id, question_subj, question_content, question_userId, question_timestamp,"
            +"category_id, category_name, choosen_answer, choosen_userId, choosen_usernick, choosen_ans_timestamp)"
            +"VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", 
            (row[2], row[5].encode('utf-8'), row[6].encode('utf-8'), quserId, questionTime, 
            categoryId, categoryName, qChosenAnswer.encode('utf-8'), choosenUserId, choosenNickName, choosenTimeStamp))
登入後複製

確保您的資料庫變數設定正確。 character_set_database 變數應設定為 utf8 以符合表格和連接設定。

以上是使用 Python 和 MySQL 時如何處理 Unicode 和編碼問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板