2016-11-27 36 views

回答

4

,你需要的語法產生是正確的文檔中,你鏈接到:

[9] STRING_LITERAL_QUOTE ::= '"' ([^#x22#x5C#xA#xD] | ECHAR | UCHAR)* '"' 
[141s] BLANK_NODE_LABEL ::= '_:' (PN_CHARS_U | [0-9]) ((PN_CHARS | '.')* PN_CHARS)? 
[10] UCHAR ::= '\u' HEX HEX HEX HEX | '\U' HEX HEX HEX HEX HEX HEX HEX HEX 
[153s] ECHAR ::= '\' [tbnrf"'\] 

這意味着,一個字符串文字開始,以雙引號(「)結束裏面的雙引號,你可以有:

  • 除了#x22,#x5C,#xA,#xD之外的任何字符我不知道這些是什麼,但我會假設它們是空間覆蓋在逃逸中的字符;
  • unicode character repres用\ u後面跟着四個十六進制數字,或者\ U後面跟着八個十六進制數字;或
  • 轉義字符,這是一個\後跟任何T,B,N,R,F,」,」,和\,它表示各種字符。
1

除了Josh的答案。將unicode數據標準化爲NFC幾乎總是一個好主意,更多信息請參見:http://www.macchiato.com/unicode/nfc-faq。例如在Java中,您可以使用以下例程

java.text.Normalizer.normalize("rdf literal", Normalizer.Form.NFKC);