Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将R中的UTF-8特殊字符斩首_R_String - Fatal编程技术网

将R中的UTF-8特殊字符斩首

将R中的UTF-8特殊字符斩首,r,string,R,String,在我抓取了一张名单后,我在R中有以下名字: DAPHN\303\211 DE MEULEMEESTER 如果我使用tolower函数,则所有字母都设置为小写,但特殊字符除外。实现这一点的最佳方法是什么?原因是您的语言环境是C。非ASCII特殊字符及其字母大小写分类在该语言环境下无法识别。您应该能够通过切换到UTF-8语言环境使其工作: Sys.setlocale(locale='C'); ## [1] "C/C/C/C/C/en_CA.utf-8" tolower('DAPHN\303\211

在我抓取了一张名单后,我在R中有以下名字:

DAPHN\303\211 DE MEULEMEESTER

如果我使用tolower函数,则所有字母都设置为小写,但特殊字符除外。实现这一点的最佳方法是什么?

原因是您的语言环境是C。非ASCII特殊字符及其字母大小写分类在该语言环境下无法识别。您应该能够通过切换到UTF-8语言环境使其工作:

Sys.setlocale(locale='C');
## [1] "C/C/C/C/C/en_CA.utf-8"
tolower('DAPHN\303\211 DE MEULEMEESTER');
## [1] "daphn\303\211 de meulemeester"
Sys.setlocale(locale='en_CA.UTF-8');
## [1] "en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.utf-8"
tolower('DAPHN\303\211 DE MEULEMEESTER');
## [1] "daphné de meulemeester"

en_CA.UTF-8
对我来说很有意义,因为我在加拿大,但如果你在美国(例如),你可能会想要
en_US.UTF-8
。我认为,对于任何国家,您都应该能够用两个字母的国家代码替换
CA
/
US
,以获得最适合您所在位置的语言环境。

原因是您的语言环境是C。非ASCII特殊字符及其字母大小写分类在该语言环境下无法识别。您应该能够通过切换到UTF-8语言环境使其工作:

Sys.setlocale(locale='C');
## [1] "C/C/C/C/C/en_CA.utf-8"
tolower('DAPHN\303\211 DE MEULEMEESTER');
## [1] "daphn\303\211 de meulemeester"
Sys.setlocale(locale='en_CA.UTF-8');
## [1] "en_CA.UTF-8/en_CA.UTF-8/en_CA.UTF-8/C/en_CA.UTF-8/en_CA.utf-8"
tolower('DAPHN\303\211 DE MEULEMEESTER');
## [1] "daphné de meulemeester"

en_CA.UTF-8
对我来说很有意义,因为我在加拿大,但如果你在美国(例如),你可能会想要
en_US.UTF-8
。我认为,对于任何国家/地区,您都应该能够用两个字母的国家/地区代码替换
CA
/
US
,以获得最适合您所在位置的区域设置。

在不更改系统区域设置的情况下,您可以使用
stringi
包执行区域设置感知文本转换:

library(stringi)
her_name <- "DAPHN\303\211 DE MEULEMEESTER"
stri_trans_tolower(her_name, locale="en_CA")
库(stringi)

在不更改系统区域设置的情况下,您可以使用
stringi
包进行区域设置感知文本转换:

library(stringi)
her_name <- "DAPHN\303\211 DE MEULEMEESTER"
stri_trans_tolower(her_name, locale="en_CA")
库(stringi)

她的名字我的问题被移到这里,因为有一个类似的问题。 还可以通过将角色转换为已知角色来解决此问题

x<-c("Sn. İLETİŞİM BİLGİLERİNİZ GUNCELLENMISTIR.")
x<-tolower(x)
x
[1] "sn. İletİşİm bİlgİlerİnİz guncellenmistir."

x我的问题被移到这里,因为有一个类似的问题。
还可以通过将角色转换为已知角色来解决此问题

x<-c("Sn. İLETİŞİM BİLGİLERİNİZ GUNCELLENMISTIR.")
x<-tolower(x)
x
[1] "sn. İletİşİm bİlgİlerİnİz guncellenmistir."

xit工作
tolower(“DAPHN\303\211 DE MEULEMEESTER”)
ddisplays
“DAPHNéDE MEULEMEESTER”
这可能与语言环境有关。你从Sys.getlocale()中得到了什么?我得到了标准的“C”,我是否应该将其设置为其他值?它可以
tolower(“DAPHN\303\211 DE MEULEMEESTER”)
ddisplays
“DAPHNéDE MEULEMEESTER”
这可能与语言环境有关。你从Sys.getlocale()中得到了什么?我得到了标准的“C”,我应该将其设置为其他值吗?谢谢,这很有效。但如果我现在把它上传到SQL,有些字符会变得更奇怪,比如版权符号。我是否必须将SQL中的设置更改为?您的DBMS是什么?你怎么上传的?上传后你是如何查看文本的?我开始弄明白了:我将语言环境从“C”更改为“UTF-8”,现在我可以使用一些正则表达式代码,比如[[:upper:],它对特殊字符也有效。我将MySQL数据库中的编码更改为UTF-8,现在字符已正确存储在数据库中。谢谢您的帮助。但如果我现在把它上传到SQL,有些字符会变得更奇怪,比如版权符号。我是否必须将SQL中的设置更改为?您的DBMS是什么?你怎么上传的?上传后你是如何查看文本的?我开始弄明白了:我将语言环境从“C”更改为“UTF-8”,现在我可以使用一些正则表达式代码,比如[[:upper:],它对特殊字符也有效。我将MySQL数据库中的编码更改为UTF-8,现在字符已正确存储在数据库中。