Unicode不可见字符的显示

Unicode的学名是”Universal Multiple-Octet Coded Character Set”,简称为UCS

不可见字符”/u200b”为 Unicode Character ‘ZERO WIDTH SPACE’ (U+200B),可用于内容标识,不占位数。

echo $LANG可以显示出Linux系统的编码方式,一般默认为UTF-8。
在Linux终端中”/u200b”为不可见字符。为了显示出内容中加入的不可见字符,可将内容保存到文本中,利用less命令打开文本。

less

?
1
less 与 more 类似,但使用 less 可以随意前后浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

eg:

?
1
2
3
4
5
在查看日志时
grep xxxxxx info.log |less
以less分页显示的形式查看日志, 用less打开的日志可以展示出不可见字符
less info.log |grep  xxxxxx
打开的日志无法展示出不可见字符

java中打印unicode的例子

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import static org.assertj.core.api.Assertions.assertThat;
  /**
* Created by wenjia3 on 16/12/1.
  */
  public class unicode {
  public static void main(String[] args){
  String contentOri= "test unicode" ;
  String content1= "\u200b"  + contentOri + "\u200b" ;
  String content2= "\u0021" + contentOri + "\u0021" ;
  String str = "" ;
  for ( int i = 0 ; i < content1.length(); i++) {
      int ch = ( int ) content1.charAt(i);
      if (ch == '\u200b' )
          str += content1.charAt(i)  + "\\u" + Integer.toHexString(ch);
      else
          str += content1.charAt(i);
  }
  System.out.println(content1);
  System.out.println(content2);
  System.out.println(str);
  assertThat(content1).as( "不含有/U200B字符" ).contains( "\u200b" );
   }
  }

运行结果

?
1
2
3
?test unicode?
  !test unicode! ?
  \u200btest unicode?\u200b

直接打印content1、content2,unicode字符会自动编译成当前标准输出的编码。即\u200b为不可见字符,\u0021为“!”。
可以利用charAt()在程序中进行转换,将字符的unicode值打印出来。

转载于:https://www.cnblogs.com/cjm123/p/8878642.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值