2013-04-15 174 views
9

使用bash,你可以使用printf用十六進制代碼打印Unicode字符

\xHH byte with hexadecimal value HH (1 to 2 digits) 
\uHHHH Unicode (ISO/IEC 10646) character with hex value HHHH (4 digits) 

例如

$ printf '\x26' 
& 

然而,由於預期

$ printf '\u0026' 
\u0026 

我的Bash版本Unicode的例子不打印

$ echo $BASH_VERSION 
4.1.10(4)-release 

回答

7

您使用的是bash的哪個版本(echo $BASH_VERSIONbash --version)? Unicode轉義工作在bash 4.2中,但不是3.2.48。我懷疑在bash 4.0中添加了支持。

更新:我可以確認它不起作用bash 4.1.2。此功能似乎已添加到bash 4.2中。

更新2:從release notes for bash 4.2

d。 $'...',echoprintf瞭解\uXXXX\UXXXXXXXX轉義 序列。

+0

在舊版本中可以使用** $ printf「%s」「%」**來打印**%**符號嗎? –

+1

我認爲這很好,以及'printf「%%」'。 – chepner

+0

謝謝,它的作品。 –