80 ff

时间:2019-03-05 12:20:41

标签: bash unicode utf-8 fonts console

如何通过在Linux控制台中使用\ u转义序列来在 0x80和0xFF 之间使用unicode打印字符?
例如,

  

[root @ ...]#setfont /lib/kbd/consolefonts/cp850-8x16.psfu.gz

首先,我将cp850-8x16.psfu.gz设置为具有Unicode为0xa9的版权字符。

  

[root @ ...]#echo -e'\ u212b'
  Å

输出正确,但unicode大于0xFF

  

[root @ ...]#echo -e'\ u00a9'
   �
  [root @ ...]#echo -e'\ ua9'
   �

输出不正确

  

[root @ ...]#echo -e'\ xC2 \ xa9'
  ©

如果我将unicode转换为utf-8,它会起作用
Rq:0xA9 = 0b 10101001 =>(utf-8)0b110 00010 0b10 101001 => 0xC2 0xA9)
有没有解决方案可以直接将\ 9与\ u一起使用(即,无需执行二进制算术来获取utf-8代码并使用\ x)?

1 个答案:

答案 0 :(得分:0)

它适用于bash版本4.4.18,但不适用于我以前的版本(4.2.46)。 经过一些检查,它可以与bash 4.3.0版一起使用,但不能在4.2.53版中使用。