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

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

Linda Hamilton
リリース: 2024-11-03 18:05:29
オリジナル
248 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート