#!/bin/bash
FILE_SUFFIX="java xml html vm js"
for x in $FILE_SUFFIX; do
file_names=$(find . -name "*.$x" | xargs file -I | grep -v utf-8 | awk -F " |:" '{print $1}')
for file_name in $file_names; do
iconv -f cp936 -t UTF-8 "$file_name" >"$file_name.new" && mv -f "$file_name.new" "$file_name"
done
echo "$x ok"
done
# XML 頭聲明與 pom.xml 編碼屬性同步修正
find . -name "*.xml" | xargs sed -i 's/GBK/UTF-8/g; s/GB2312/UTF-8/g'
find . -name "pom.xml" | xargs sed -i 's/GBK/UTF-8/g; s/GB2312/UTF-8/g'
# Velocity/Struts/JS 參考路徑同步調整...
<script src="..." charset="GBK">(若該 JS 仍為 GBK)<properties><project.build.sourceEncoding>UTF-8</...><?xml version="1.0" encoding="UTF-8"?>getBytes("GBK") → getBytes("UTF-8")request.setCharacterEncoding("UTF-8") 僅對 POST 有效。GET 請求需修改 server.xml 的 Connector:
<Connector port="8080" protocol="HTTP/1.1"
URIEncoding="UTF-8"
connectionTimeout="20000"
redirectPort="8443" />
「檔案編碼、傳輸編碼、解析編碼、儲存編碼」四位一體統一為 UTF-8。腳本解決 80% 批量轉換,剩餘 20% 需人工掃描驗證。