"\u5546\u54c1\u7f16\u53f7"
顯示爲"商品編號"
。如何將「商品編號」轉換爲「 u5546 u54c1 u7f16 u53f7」
"\u5546\u54c1\u7f16\u53f7" # => "商品編號"
什麼是"\u5546\u54c1\u7f16\u53f7"
中的字符編碼?我怎麼能把"商品編號"
轉換成"\u5546\u54c1\u7f16\u53f7"
?
"\u5546\u54c1\u7f16\u53f7"
顯示爲"商品編號"
。如何將「商品編號」轉換爲「 u5546 u54c1 u7f16 u53f7」
"\u5546\u54c1\u7f16\u53f7" # => "商品編號"
什麼是"\u5546\u54c1\u7f16\u53f7"
中的字符編碼?我怎麼能把"商品編號"
轉換成"\u5546\u54c1\u7f16\u53f7"
?
\uHHHH
(其中HHHH
是十六進制)表示法只是一種通過數字引用Unicode字符的方法。通常在以下情況下使用:
商
之類的內容。當你說"\u5546\u54c1\u7f16\u53f7"
和看到"商品編號"
,它只是意味着你正在一個現代的終端是Unicode的意識,並具有良好的字體。
在大多數情況下,應該使用哪種表示形式,它最終會以機器內部相同的字節結束。但是,如果你必須得到\u
版本出於某種原因,那麼你可以說這樣的事情(假設你的編碼開出右側):
ascii_friendly = str.chars.map { |c| '\u%4.4x' % c.ord }.join
然後,當你打印ascii_friendly
到屏幕,文件,或說一個JSON流,你會看到像
\u5546\u54c1\u7f16\u53f7
注意的事情是,在\u5546
不存在單一的Unicode 商
,它是六個字符\
,u
,5
,5
,4
和6
。如果您的目標是JSON,那麼在解析JSON時將正確解釋\u
轉義碼,但如果您的目標是其他任何內容,則只會看到六個字符,而不是您要查找的單個Unicode字符。
非常感謝! –
@ 2g。畝太短可能會更好地解釋它,我不反對這是一個很好的答案,但它說的和我的答案一樣,以及МалъСкрылевъ的評論。 – sawa
@sawa。好吧!請原諒我。 –
HEI,你有什麼問題。問題是如何轉換,是不是顯示 –
你不能將''商品編號''轉換爲'「\ u5546 \ u54c1 \ u7f16 \ u53f7」'因爲是相同的字符串,第二個只是視覺表示首先。 –
注意:「\ u5546 \ u54c1 \ u7f16 \ u53f7」中的字符編碼是什麼?有一個答案:「任何支持Unicode的編碼,但默認情況下在Ruby中可能是UTF-8」。這是因爲你所看到的*本身不是一種編碼,而是一種使用轉義序列的方便表示。要找到正在使用的編碼,您可以編寫''\ u5546 \ u54c1 \ u7f16 \ u53f7「.encoding',但請注意轉義序列在Ruby支持的所有基於Unicode的編碼中看起來完全相同。 –