我正在使用grep解析通過facebook Open Graph API獲取的朋友列表。我主要是能夠做我想做的用下面的命令,在bash發出:如何使用grep unescape non-usa,en,ASCII類型的字符?
grep -aiPo '"name":"(.*?)","id":"[[:digit:]]*"' friends?blahblah-access-token-stuff
這將產生它看起來像一個列表:
"name":"John Day","id":"--id ommitted--"
"name":"Andria Cast\u00f1eda","id":"--id ommitted--" // let me draw your attention here
"name":"Jane Doe","id":"--id ommitted--"
名字是上述變更爲保護隱私
如果您注意到,中間條目中有一個非轉義序列,對應於一個波形符號N.是否有一種簡單的方法可將這些字符送入java程序(我的主要目的),以便java知道\ u00 f1eda是unicode爲捲曲n說話嗎?
我會不喜歡解決這個問題,通過解析java中的字符串和手動unnescap unicode。我非常希望指示grep來處理這種情況,或者另一個GNU或開源工具,它可以廣泛用於bash。
在這一點上,我會把整個輸入作爲一個文件提供給一個java程序,而不必擔心OMG,這是一個Unicode轉義序列!!? Java自然會檢測unicode字符並將它們映射到相應的內部表示。
在此先感謝!
「安德里亞演員\ u00f1eda」 是無論如何,Unicode會被轉義出來。所以它應該輸出正確的字符。我不確定問題是什麼? – Mikaveli 2011-01-27 16:29:53
好的,如果我打電話給System.out.println('\ u00f1eda'),它將打印正確的Unicode字符。但是,我能夠做典型的字符串操作嗎?比如,把「Andria Cast \ u00f1eda」和「Bob Joel」比較一下? – 2011-01-27 16:40:25