我和R和stringr一起玩耍。当执行str_trim,str_upper等我的丹麦字符被转换为unicode字符:
library(stringr)
library(stringi)
Clean_String <- function(string) {
#locale <- stri_locale_list()[grep("DK", stri_locale_list())]
print(c("1:", string))
string <- stringr::str_trim(string)
print(c("2:", string))
string <- stringr::str_to_upper(string, "da_DK")
print(c("3:", string))
return(string)
}
Clean_String("This IS a test with danish letters: ÆØÅ .. ")
调用Clean_String会得到以下输出:
[1] "1:" "This IS a test with danish letters: ÆØÅ .. "
[1] "2:" "This IS a test with danish letters: ’\u009d\u008f .."
[1] "3:" "THIS IS A TEST WITH DANISH LETTERS: ’\u009d\u008f .."
[1] "THIS IS A TEST WITH DANISH LETTERS: ’\u009d\u008f .."
>
所以我失败了#34; 2:&#34;。应用语言环境&#34; da_DK&#34;没有影响。我认为我必须遗漏一些明显的东西,因为所有stringr :: functions都有相同的行为。
我知道我可以使用toupper。 toupper保持现场。但是我想使用字符串函数并理解我做错了什么。
如何在字符串上保留相同的区域设置/格式?
[UPDATE] 似乎该问题已连接到R Tools for Visual Studio 0.4.20623.1711。我需要指定&#34;代码页&#34;在R工具 - &gt;选项 - &gt;高级 - &gt;代码页下。它被设置为(操作系统默认值)。将其更改为西欧(ISO)修复了它。
答案 0 :(得分:0)
此问题与适用于Visual Studio 0.4.20623.1711的R Tools 相关联。
有必要指定&#34;代码页&#34;在 R工具 - &gt; 选项 - &gt; 高级 - &gt; 代码页。
设置为(OS Default)
。将其更改为Western European (ISO)
修复它。