R で MySQL からテキストをフェッチする際の UTF-8 文字エンコードの問題を解決する
MySQL データベースから R に UTF-8 エンコードされたテキストを取得する問題が発生し、文字化けが「?」として表示される可能性があります。シンボル。 R とさまざまなパッケージを使用してこの問題を解決しようとするいくつかの試みは成功しませんでした。
この問題の根本原因は、R からデータベースと確立された接続で使用されるデフォルトの文字セットにあります。デフォルトでは、R のロケールは次のとおりです。 en_US.UTF-8 に設定されていますが、データベース自体は、UTF-8 エンコーディングをサポートしていない latin1 などの別の文字セットを使用するように構成されている可能性があります。
この問題を解決するには、次のことが必要です。接続セッションが UTF-8 エンコーディングを使用するように明示的に設定されていることを確認してください。これを実現するには 2 つのアプローチがあります:
RMySQL の使用:
dbConnect(MySQL()) を使用して MySQL データベースへの接続を確立した後、次のクエリを実行します。
SET NAMES utf8
このクエリは、現在のセッションの文字セットを UTF-8 に変更し、後続のクエリで UTF-8 で正しくエンコードされたデータが取得されるようにします。
RODBC の使用:
odbcDriverConnect() を使用してデータベースに接続する場合、DSN 文字列内で CharSet=utf8 パラメータを指定します:
con <- odbcDriverConnect('DRIVER=mysql;user=root;CharSet=utf8')
文字セットを明示的に UTF-8 に設定します。 、RODBC 経由で確立された接続は、正しいエンコーディングを使用してデータを取得し、文字化けの問題を解決します。
以上がR で MySQL からテキストをフェッチする際の UTF-8 文字エンコーディングの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。