我有一個字符串向量,其中一些值是用越南語編碼的UTF-8編碼。無法識別的字符串值R
> so_wrong
[1] "Thiết bị & dịch vụ" "Quản lý"
[3] "Hãng" "Thời tiết"
[5] "Lý do khác" "Tàu bay về muộn"
[7] "Kỹ thuật" "Thương mại"
[9] "Khai thác" "Quản lý, điều hành bay"
[11] " "
我想刪除它包含了最後兩個值的另一種載體:「泉LY,điều禪師灣」和「」。但R不承認他們。
> any(so_wrong == " ")
[1] FALSE
> any(so_wrong == "Quản lý, điều hành bay")
[1] FALSE
...甚至可以通過輸入這些命令中的值是在向量完全值(我複製粘貼它們)。這項工作,在另一方面:
> any(so_wrong == so_wrong[11])
[1] TRUE
是什麼問題以及如何解決/解決方法呢?
編輯:編碼
> Encoding(so_wrong)
[1] "UTF-8" "UTF-8" "latin1" "UTF-8" "UTF-8" "UTF-8" "UTF-8"
[8] "UTF-8" "latin1" "UTF-8" "UTF-8"
編輯:我保存的矢量爲CSV和推它here
使用charToRaw檢查原始字節。最後一個向量中可能有多個空格,第10個向量周圍的extraspaces可能不會顯示出來。也可以使用trimws去除空格 – infominer
對「」值使用chartoRaw給出結果c2 a0。我應該從中學到什麼? –
使用系統調用從R到八進制轉儲,您還可以看到使用此命令在對象中是否存在任何非ascii字符:'system(sprintf(「echo%s | od -c」,so_wrong [11]))' –