网站制作软件 aws,闵行18路,jsp是网站开发语言吗,深圳做网站服务公司代码中统一使用utf-8编码是最好的#xff0c;但是有一些多人合作的项目或者一些历史遗留代码#xff0c;常见一些中文注释乱码的问题。这里以一个开源项目evpp为例子 evpp。以项目中的一个commit id为例#xff1a; 477033f938fd47dfecde43c82257cd286d9fa38e #xff0c; …代码中统一使用utf-8编码是最好的但是有一些多人合作的项目或者一些历史遗留代码常见一些中文注释乱码的问题。这里以一个开源项目evpp为例子 evpp。以项目中的一个commit id为例 477033f938fd47dfecde43c82257cd286d9fa38e git checkout -b test 477033f938fd47dfecde43c82257cd286d9fa38e , 切换一个分支用于测试。这个项目中的 evpp/logging.h 文件的注释就存在乱码。本人用vscode打开的截图如下 当然这种情况在网页上或者notepad上有的可以看清楚乱码的注释。但是这没有解决根本问题编码混乱还是存在。如果代码中这种情况比较少手动修改一下也是可以的文件比较多就比较痛苦了。如下的perl脚本用于解决这个问题。
#! /usr/bin/perl
use v5.14;
use Tie::File;
use Encode;for my $filePath (ARGV) {unless (-f $filePath) {warn $filePath does not exist !!!;next;}tie my contentArry, Tie::File, $filePath;for my $line (contentArry) {next if encode(utf-8, decode(utf-8, $line)) eq $line;$line encode(utf-8, decode(gbk, $line));}untie contentArry;
}脚本的用法举例脚本命名为 process_comments.pl 然后在Git Bash中直接执行 ./process_comments.pl logging.h 即可参数可以输入多个文件名。执行脚本后 git diff一下 可以清楚的看到乱码的注释正常显示了。在vscode中也显示正常。OK又可以愉快地码代码了