Fetching UTF-8 text from MySQL in R returns “????”

前端 未结 3 1680
逝去的感伤
逝去的感伤 2020-11-28 09:27

I\'m stuck trying to fetch UTF-8 text in a MySQL database from R. I\'m running R on OS X (tried both via the GUI and command line), where the default locale is en_US.UTF-8,

相关标签:
3条回答
  • 2020-11-28 09:47

    Thanks to @chooban I found out the connection session was using latin1 instead of utf8. Here are two solutions I found:

    • For RMySQL, after connecting run the query SET NAMES utf8 to change the connection character set.
    • For RODBC, connect using CharSet=utf8 in the DSN string. I was not able to run SET NAMES via ODBC.

    This question pointed me in the right direction.

    0 讨论(0)
  • 2020-11-28 09:48

    Here's something to try at least. After you've connected, run "SHOW VARIABLES LIKE 'character_set_%'" and print out the results. If nothing else it's a useful check to see if the character set options you've specified have taken.

    0 讨论(0)
  • 2020-11-28 09:58

    This worked for me. Here is a full example:

    con = dbConnect(drv = MySQL(), user = user, password = password,
                    dbname = dbname, host=host)
    
    dbSendQuery(con, "SET NAMES utf8mb4;")
    dbSendQuery(con, "SET CHARACTER SET utf8mb4;")
    dbSendQuery(con, "SET character_set_connection=utf8mb4;")
    
    
    dbGetQuery(con, "SELECT * FROM WHATEVER")
    
    0 讨论(0)
提交回复
热议问题