gpt4 book ai didi

在 Windows 上使用 UTF-8 开发 R 包

转载 作者:可可西里 更新时间:2023-11-01 13:15:02 25 4
gpt4 key购买 nike

我在一个非英语国家。我们需要能够在代码中使用本地语言进行开发。

我正在尝试开发一个包,但遇到了编码问题。该包基本上只是我组织代码的一种方式。这意味着它包含用于列名和数据值的魔法字符串,例如:

data %>% select("Åsen", Region) %>% filter(Region == "Åholt")

这段代码,包含在我的包中定义的函数中,当我尝试运行它时,Å 将失败并被转换为一些奇怪的字符,导致它失败,因为没有列或数据包含所述奇怪的字符。

我所有的源代码文件都使用 UTF-8 编码。

用英语开发不是一种选择。

我的包描述文件中有以下设置:

Depends: R (>= 3.30)
Encoding: UTF-8

编辑:

在调用包的主脚本顶部使用 options(encoding = "UTF-8") 似乎解决了包代码中包含非 ascii 字符的问题。

谁能对此有更多了解?

最佳答案

我关于 R 和 UTF-8 的随机笔记,尤其是与 MySQL/MariaDB 一起使用时:

R/RStudio

Tool -> Global Options -> Code -> Saving and put UTF-8
rs <- dbSendQuery(con, 'set character set "utf8"')
rs <- dbSendQuery(con, 'SET NAMES utf8')

导轨:Rails and utf8mb4

Ruby on Rails:

"\xD0\x9A\xD0\xB0\xD1\x81\xD0\xBB".force_encoding("UTF-8") => "Щасл"

注意 rake db:reset 。相反,请考虑 rake db:drop && rake db:create && rake db:migrate 。重置只是从已存储的模式创建了表,该模式具有错误的字符集和排序规则。但是从迁移中重新创建它们会使用新的字符集和排序规则创建它们。

RoR:application_controller.rb

  def configure_charsets
response.headers["Content-Type"] = "text/html; charset=utf-8"
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
end

使用以下代码行编码编辑您的 database.yml:utf8

关于在 Windows 上使用 UTF-8 开发 R 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47906216/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com