stringr :: functions丢弃或忽略语言环境

时间:2016-07-30 13:37:42

标签: regex r stringr

我和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)修复了它。

1 个答案:

答案 0 :(得分:0)

此问题与适用于Visual Studio 0.4.20623.1711的R Tools 相关联。

有必要指定&#34;代码页&#34;在 R工具 - &gt; 选项 - &gt; 高级 - &gt; 代码页

设置为(OS Default)。将其更改为Western European (ISO)修复它。