2

私は、Amazon が不快だと判断したものをすべて探し出し、破壊する任務を負っています。iconv過去に、「UTF-8」から「latin1」に変換するために使用してこれに対処しましたが、「不明」としてエンコードされているため、ここではできません。

test <- "Gwena\xeblle M"
> gsub("\xeb","", df[306,"primauthfirstname"] )
[1] "Gwenalle M"
> Encoding(df[306,"primauthfirstname"])
[1] "unknown"

では、すべての \x## コードを削除する正規表現は何ですか?

4

2 に答える 2

3

私はこのパターンが機能するはずだと信じています:

pat <- "[\x80-\xFF]"

test <- c("Gwena\xeblle M", "\x92","\xe4","\xe1","\xeb") 
gsub(pat, "", test, perl=TRUE)
# [1] "Gwenalle M" ""           ""           ""           ""     

説明:

文字クラス"[\x00-\xFF]"がフォームのすべての文字と一致するため、これは機能し\x##ます。ただし、それらの前半(16進数で0番目から127番目(または00'番目から'番目))はASCII文字です。したがって、検索して破棄するのは、それらの後半(128番目から255番目(または16進モードでは'thから'番目))です。7F80FF

于 2012-07-06T22:20:06.973 に答える
2

iconvlist()を少しループして、これを(他の組み合わせの中で)見つけました:

test<-"Gwena\xeblle M"
iconv(test,"CP1163","UTF-8")
 [1] "Gwenaëlle M"

これはあなたが求めていたものではありませんが、正しいエンコーディングを見つけることは可能かもしれません。

于 2012-07-06T22:26:40.610 に答える