java程序中’\t’的对齐问题

在用System.out.println()输出时想要通过制表符’\t’来使输出的信息对齐,但是会出现错位的现象

java 制表符 Java制表符没对齐_java


java 制表符 Java制表符没对齐_System_02


发现在用UTF-8编码时,一个制表符’\t’会自动补空到下一个4个空格的整数倍位置

多加空格可以暂时解决问题

java 制表符 Java制表符没对齐_java_03

java 制表符 Java制表符没对齐_java_04

GBK编码

一个’\t’补空到下一个8个空格的整数倍位置

一个汉字占用两个空格

java 制表符 Java制表符没对齐_System_05

一些经验

utf-8 一个汉字不到两个空格,’\t’4个空格
GKB一个汉字两个空格,’\t’8个空格