为毛需要转换
历史原因,公司内部的source code中充斥着大量的GBK编码,但是明显UTF-8更适合国际化的字符需求。如果不转换,在IDE中各种字符编码切换,各种蛋疼。一不小心,多种编码一叠加,造成不可逆的乱码保存,那就永远乱码的噩梦了。
当然,更好的国际化支持,除了统一用UTF-8保存文件之外,更好的做法是,source code中压根就不应该出现中文(当然,这点可能会被很多人喷,算了,这个不是重点,本文的重点是怎么转)。
如何转换
基本都是利用*nix系本身提供的iconv一行帮你搞定问题。
*nix下的通用做法
这里,*nix是指Unix like(包括Mac)、Linux系下的通用做法,利用输出重定向
find . -name '*.java'| while read file; do iconv -f GBK -t UTF-8 "$file" > /tmp/a; cp /tmp/a "$file"; done
这里,你需要修改无非是管道前面的find命令,获取你这种关心的文件就行啦。
Ubuntu下的做法
如果你用的是debian发行版的Ubuntu版本,那么恭喜你,你有稍微简化一点的写法,就是可以真正利用Linux下iconv的-o参数修改同一个文件。
find . -name '*.java' -exec iconv -f GBK -t UTF-8 {} -o {} \;
注意:对于替换当前文件自己,-o参数并非在所有Linux下都管用
上述方法,在公司内的Linux发行版下,就不好使。会造成被修改文件被清空!
所以,安全第一,你还是上面的通用命令吧。
相关推荐
dotfiles, *NIX 系统的个人 dotfiles
nix, Rust 与 *nix api的友好绑定 Rust 绑定到 *nix api 文档( 释放)Nix试图为各种 *nix 平台 api ( Linux,达尔文,。) 提供友好的绑定。 目标是不提供 100%统一接口,而是统一什么可以以提供平台特定 api 。对于...
*nix 下的邮件收取代码,很好用的,是个开源的
*nix下的 多线程编程指南,非常详细,值得一看
fs-easymotion 是一组 bash 函数,可帮助使用内置的 *nix 命令导航文件系统。 目前仅在 zsh 上进行了测试,但最终会更新以适用于所有流行的 shell。 受到,它试图通过很少的按键而不是长或重复的命令来简化向下...
dotfiles:* nix配置文件
点文件:我所有的各种* nix点文件
immortal 是一个 *nix 跨平台管理(操作系统无关)
static-binaries, 作为静态链接二进制文件生成的各种 *nix 工具 静态二进制文件这个 repo 包含一组静态链接的各种工具,以及 Dockerfiles/其他构建脚本,这些脚本可以用来构建它们。 我通常只是根据需要创建这些工具...
Prometheus 导出器,用于 *NIX 内核公开的硬件和操作系统指标,用 Go 编写,带有可插拔指标收集器。建议 Windows 用户使用 WMI 导出器。
cronsun 是一个分布式任务系统,单个结点和 *nix 机器上的 crontab 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择。
NULL 博文链接:https://sheng.iteye.com/blog/446600
目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很多的应用软件中,都可以看到正则表达式的影子。 <br> 正则表达式的使用,可以通过...
目录[* nix部署脚本](#* nix部署脚本)介绍这些文件旨在跨多个,因此,大多数脚本的编写目的都是不依赖[os / distro / software] 。 aka POSIX兼容。剧本快速浏览一下我的脚本,这些脚本主要用于设置开发环境。 ...
将 Windows 风格的 .URL 文件转换为 *nix .desktop 文件并返回 将 .URL 文件转换为 .desktop 文件或将 .desktop 文件转换为 .URL 文件 - 用于移动书签或启动器快捷方式。 来自 linuxquestions.org 论坛上 äxl ...
node.js源码 .configure 失败可能是python 版本太低,可以升级下python再尝试configure
可以在任何* nix或Windows平台上使用最新的Python安装和合适的编译器来创建桥接头文件。 仅* nix平台支持生成最终二进制文件。 由于实际目的(即作者选择的操作系统),主要的目标操作系统是FreeBSD。 假定系统中...
如果没有这个模块,但是在 .csx 文件中有 shebang,你会得到语法错误。 该模块对于在 *nix 系统上使用编写脚本非常有用。 安装 安装 为 *nix 系统安装 : 使用以下内容在 /usr/bin(或 PATH 中的任何其他目录)中...
我的* nix系统的配置文件。 当前设置: 操作系统:macOS 10.14“ Mojave” 终端仿真器: 配色方案:Dark Ocean变体中的 字体:由 桌面壁纸:由Tkui 该存储库包含Bash,Readline,Vim,tmux,Git,Mutt,...