1. 编码格式修改
执行sh脚本时报错:/bin/sh^M: bad interpreter: No such file or directory
1、添加执行权限chmod a+x filename
2、然后修改文件格式vi filename
3、利用如下命令查看文件格式
:set ff
或 :set fileformat
可以看到 fileformat=dos 或 fileformat=unix。
4、利用如下命令修改文件格式
:set ff=unix
或 :set fileformat=unix
5、保存文件:wq
6、最后再执行文件./filename
2. UTF-8 BOM 转 UTF-8
使用macos/linux中编译运行windows下创建的java项目,报错 Error:(1, 1) java: 非法字符: ‘\ufeff’。
BOM(byte order mark)是为 UTF-16 和 UTF-32 准备的,用于标记字节序(byte order)。
微软在 UTF-8 中使用 BOM 是因为这样可以把 UTF-8 和 ASCII 等编码明确区分开,但这样的文件在 Windows 之外的操作系统里会带来问题。
那么,怎么把utf8 bom编码文件批量转换为utf8编码文件呢?使用下面的脚本。
1 | # 当前目录下递归所有文件 |
3. GBK 转 UTF-8
1、单个文件编码转换
打开一个文件,发现中文显示乱码,大概率编码问题。使用下面的命令进行转码:
1 | iconv -f GBK -t UTF-8 inputfile > outputfile |
2、多个文件批量编码转换
1 |
|