1、字符集编码兼容是个头疼的问题,这里记录各个场景下的字符编码到底指的是什么:
(1)xshell登录终端里设置的编码:这里设置的是终端的显示编码,如果文本数据是utf-8的,这里设置gb2312,则会显示乱码。文本数据是什么格式的,还要看编辑器是设置的什么。
(2)vi编辑的编码:如果你的数据是文本的,可以用vi编辑。编辑时用的什么编码是可以设置的。在vi的命令行模式下设置:
# 查看
:set fenc
:set fileencoding
# 设置
:set fenc=utf-8
:set fileencoding=utf-8
这里的修改不是永久的,只是对当前的vi实例有效。
文本里的实际数据将以这里设置的编码类型进行编码。
(3)顺便再提下hexdump: 下图可以看出,文本里的字符顺序是123456,但hexdump在查看时的顺序是两个字交换的,这里在维护时需要注意。
2、应用案例:
我们在开发过程中,会遇到字符集兼容的问题,这时需要进行字符转码,怎样验证我们开发的代码和测试数据到底正不正确呢?这时就可以用vi编辑指定的编码数据,然后按指定的编码去显示或者解码。这样可避免测试数据和解码显示数据错误导致的无效测试。