ホームページ  >  記事  >  データベース  >  R で MySQL から UTF-8 テキストを取得すると、「?????」という文字が表示されるのはなぜですか?

R で MySQL から UTF-8 テキストを取得すると、「?????」という文字が表示されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-03 18:05:29188ブラウズ

Why am I seeing

R での MySQL からの UTF-8 テキストの取得: "?????" のデコード

ファイルからの UTF-8 エンコードされたテキストの取得MySQL データベースを R にインポートすると、「?????」という結果になる場合があります。文字。この問題を解決するには、次の点を考慮してください。

1.データベース エンコーディングの確認

データベース テーブルが適切な文字セットと照合順序で定義されていることを確認します。たとえば、MySQL の場合:

CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2。接続エンコーディングの設定

R でデータベース接続を確立するときに、正しい文字エンコーディングを指定します。

RODBC:

con <- odbcDriverConnect('DRIVER=mysql;user=root', CharSet='utf8')

RMySQL:

最初に接続してから実行します:

dbConnect(MySQL(), user='root')
dbSendQuery(con, 'SET NAMES utf8')

3.文字エンコーディングの変換

結果を取得した後、文字列列の文字エンコーディングを UTF-8 に変換します。

RODBC:

res <- sqlQuery(con, 'SELECT * FROM rtest.test')
res$str <- iconv(res$str, "UTF-8-Mac")

RMySQL:

res <- dbGetQuery(con, 'SELECT * FROM rtest.test')
res$str <- as.character(res$str, encoding = 'UTF-8')

追加メモ:

  • デフォルトのシステム ロケールが UTF-8 に設定されていることを確認してください。 .
  • RMySQL の場合、dbSendQuery を使用して文字エンコーディングを設定すると、後続のすべてのクエリに有効です。
  • iconv を使用して文字列を UTF-8 にトランスコードすることもできますが、その動作は、プラットフォーム。

以上がR で MySQL から UTF-8 テキストを取得すると、「?????」という文字が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。