首頁  >  文章  >  資料庫  >  為什麼在 R 中從 MySQL 取得時 UTF-8 字元顯示為“?”?

為什麼在 R 中從 MySQL 取得時 UTF-8 字元顯示為“?”?

Linda Hamilton
Linda Hamilton原創
2024-11-04 02:04:29649瀏覽

Why Do UTF-8 Characters Appear as

為什麼 UTF-8 字元在 MySQL 中顯示為「?」當在 R 中取得時?

在 R 中從 MySQL 取得 UTF-8 編碼文字通常會導致顯示「?」對於非 ASCII 字元。出現此問題的原因是 R 中的預設語言環境與 MySQL 使用的會話字元集不符。

編碼相容性問題

在 OS X 上執行 R 時預設 en_US.UTF-8 語言環境,R 會話預設需要 UTF-8 編碼資料。但是,使用 ODBC 或 RMySQL 建立的 MySQL 連線可能會使用不同的字元集,例如 latin1。這種不匹配會導致 UTF-8 字元解碼不正確。

解決方案

要修正此問題,請確保MySQL 連線使用UTF-8 字元集:

  • RMySQL: 建立連線後,執行查詢SET NAMES utf8 將會話字元集變更為UTF-8。
  • RODBC: 在 DSN 字串中使用 CharSet=utf8 進行連接,連接時指定 UTF-8 字元集。

其他提示

  • 檢查字元MySQL 資料庫和表格的集合。它們也應該設置為 UTF-8。
  • 如果需要,請使用 R 中的 Encoding 函數轉換字元編碼。
  • 將 R 中的選項(編碼)配置設定為 UTF-8確保整個會話中的 UTF-8 編碼保持一致。

以上是為什麼在 R 中從 MySQL 取得時 UTF-8 字元顯示為“?”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn