UTF-8帶BOM格式與UTF-8無BOM格式轉換

轉自:https://blog.csdn.net/fanyun_01/article/details/78378724

Qt在windows下使用VS建立的工程文件轉到Linux環境下編譯報出大量錯誤,反過來也一樣,原來是編碼的問題。
VS採用UTF-8 BOM格式編碼,而Linux下采用UTF-8無BOM格式。BOM用來標記編碼的字節順序,但是由於編碼字節順序對於UTF-8來說無關緊要,而且Unicode標準也並不推薦使用帶BOM的UTF-8編碼格式。總之,由於Windows和Linux的不同,爲避免使用Notepad++手動更改大量文件的繁瑣,提供shell轉換腳本如下:
UTF-8帶BOM轉UTF-8無BOM:
#!/bin/bash
#將UTF-8帶BOM編碼的文件轉化爲UTF-8無BOM格式
if [[ -z “$1” ]];then
echo ‘用法:./rmbom.sh [folder | file]’
echo ‘將UTF-8編碼的文件轉化爲UTF-8無BOM格式’
exit 1
fi

path=$1
find $path -type f -name “*” -print | xargs -i sed -i ‘1 s/^\xef\xbb\xbf//’ {}
echo “Convert finish”

UTF-8無BOM轉UTF-8帶BOM:

#!/bin/bash
#將UTF-8無BOM編碼的文件轉化爲UTF-8帶BOM格式
 
 
if [[ -z "$1" ]];then
    echo '用法:./addbom.sh [folder | file]'
    echo '將UTF-8無BOM格式編碼的文件轉化爲UTF-8帶BOM'
    exit 1
fi
 
 
path=$1
find $path -type f -name "*" -print | xargs -i sed -i '1 s/^/\xef\xbb\xbf&/' {}
echo "Convert finish"

UTF-8無BOM轉UTF-8帶BOM:

#!/bin/bash
#將UTF-8無BOM編碼的文件轉化爲UTF-8帶BOM格式
 
 
if [[ -z "$1" ]];then
    echo '用法:./addbom.sh [folder | file]'
    echo '將UTF-8無BOM格式編碼的文件轉化爲UTF-8帶BOM'
    exit 1
fi
 
 
path=$1
find $path -type f -name "*" -print | xargs -i sed -i '1 s/^/\xef\xbb\xbf&/' {}
echo "Convert finish"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章