尝试将数据从r写入mysql时的编码问题

plupiseo  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(660)

我的数据包含特殊字符,比如德语元音变音符。

  1. p=structure(list(ppl_code = c(992621L, 992381L, 992136L, 991989L,
  2. 991898L, 991759L, 991681L, 991593L, 991294L, 991036L, 990934L,
  3. 990751L, 990535L, 990411L, 990182L, 989507L), proj_name = c("klo",
  4. "Dalbygda", "Oosterhorn", "Hån", "Yatir", "Montigny la Cour",
  5. "Valle Hermoso", "Acciona Honawad - 120 MW", "Apfeltrang", "RiaBlades",
  6. "General Acha", "Lindau-Böhlitz", "Apfeltrang", "Alcazar Round 2",
  7. "Peckelsheim", "Linnich 3")), .Names = c("ppl_code", "proj_name"
  8. ), row.names = 15:30, class = "data.frame")

当我尝试将其写入mysql数据库时:

  1. conn <- dbConnect(
  2. drv = RMySQL::MySQL(),
  3. dbname = "mydb",
  4. host = "#####",
  5. username = "#####",
  6. password = "#####")
  7. dbWriteTable(conn, value = p, name = "MyTable",row.names=FALSE)

我得到了编码错误:

  1. could not run statement: Invalid utf8 character string: 'Lindau-B'

我查了好几篇关于这个问题的帖子,像这里和这里,但它们都是一般性的解释,没有一个明确的解决办法!有谁能帮我提出一个明确的问题来解决这个问题?

vnjpjtjt

vnjpjtjt1#

你需要宣布使用utf-8。

  1. Tool -> Global Options -> Code -> Saving and put UTF-8
  2. rs <- dbSendQuery(con, 'SET NAMES utf8')

相关问题