BOM 的去除方式:分別使用vim, Python, 及bash - Kirin
文章推薦指數: 80 %
BOM 的去除方式:分別使用vim, Python, 及bash. 0. Kirin written 10 個月ago. 最後更新日期:2022 年01 月3 日. BOM 是Byte Order Mark 的縮寫,中文譯為「位元組順序 ...
Home
Linux
BOM的去除方式:分別使用vim,Python,及bash
BOM的去除方式:分別使用vim,Python,及bash
0
Kirinwritten10個月ago
最後更新日期:2022年01月3日BOM是ByteOrderMark的縮寫,中文譯為「位元組順序編號」。
在Windows系統中,有一些軟體(如記事本)會在寫入或讀取UTF-8的文件時,加入BOM或是優先去尋找文件中的BOM記號,如果沒有找到,就會使用Windows系統預設的編碼cp950來開啟或寫內文件檔。
但是在Linux系統中,這樣的特性則可能會產生一些相容性的問題。
內容目錄
如何判斷文件是否有BOM記號如何在檔案中加入BOM記號在vim中使用Python如何移除檔案中的BOM記號在bash中在vim中參考資料
如何判斷文件是否有BOM記號
在bash中,可以輸入以下指令
grep-r$'\xef\xbb\xbf'檔案名稱
在vim中,可以輸入以下指令,如果回應為「nobomb」,就是沒有bom記號,如果回應為「bomb」,則是有bom記號
:setbomb?
如何在檔案中加入BOM記號
在vim中
:setbomb
使用Python
#在把資料寫入檔案前,先寫入BOM
withopen('data.txt','wb')asf:
f.write(b'\xEF\xBB\xBF')
#再繼續寫入其他資料
withopen('data.txt','w',encoding='utf-8',newline='')asf:
#...
如何移除檔案中的BOM記號
在bash中
#方法一
#使用grep找出來,再用perl去除
grep-rl$'\xEF\xBB\xBF'.|xargsperl-i-pe's{\xEF\xBB\xBF}{}'
#方法二
#使用find找出來,再用sed去除
find.-typef-execsed-i's/\xEF\xBB\xBF//'{}\;
在vim中
:setnobomb
參考資料
https://en.wikipedia.org/wiki/Byte_order_mark
https://zh.wikipedia.org/wiki/%E4%BD%8D%E5%85%83%E7%B5%84%E9%A0%86%E5%BA%8F%E8%A8%98%E8%99%9F
Lastmodified:2022-01-03
Author
Kirin
Comments
WriteaReplyorComment取消回覆Youremailaddresswillnotbepublished.
用電子郵件通知我後續的迴響。
新文章使用電子郵件通知我。
Searchfor:
Search
近期文章
Python3–檔案–檔案與目錄的操作
【Python】檢查Sqlite中的資料表是否存在
BOM的去除方式:分別使用vim,Python,及bash
Android開發|[問題][已解決]無法編譯,出現「InstalledBuildToolsrevision31.0.0iscorrupted」的錯誤訊息
Android開發|工具程式–adb(AndroidDebugBridge)
近期留言「Kirin」在〈一定要會的PHP元件–Carbon–處理日期和時間〉發佈留言「Sunny.cat」在〈一定要會的PHP元件–Carbon–處理日期和時間〉發佈留言彙整
2022年1月
2021年12月
2021年7月
2021年6月
2021年2月
2021年1月
2020年12月
2020年10月
2020年8月
2020年7月
2020年1月
2019年12月
2019年11月
2019年8月
2019年4月
2019年3月
2019年2月
2019年1月
分類
Android開發
Laravel
Linux
PHP
PhpSpreadsheet
Python
WooCommerce
未分類
測試驅動開發
科技生活
網站技術
資訊安全
軟體工程
電腦硬體
其他操作
登入
訂閱網站內容的資訊提供
訂閱留言的資訊提供
WordPress.org台灣繁體中文
文章導覽
PreviousPostAndroid開發|[問題][已解決]無法編譯,出現「InstalledBuildToolsrevision31.0.0iscorrupted」的錯誤訊息NextPost【Python】檢查Sqlite中的資料表是否存在
延伸文章資訊
- 1Python: 關於Unicode 的BOM - 傑克! 真是太神奇了! - 痞客邦
註一: 主要是因為可使用的編碼數只有256 個, 而不同code page 之間會對應不同的符號, 進而無法得知資訊的原始樣貌. 關於Unicode 的BOM (Byte Order Mark)...
- 2[python] 解決生成csv file編碼問題(with BOM) - JysBlog
當我們使用UTF-8生成csv時,並未在header生成BOM訊息,所以Excel會依照Unicode編碼讀取,就會有亂碼產生。 實作. 下面是簡單的生成csv的python程式:.
- 3BOM 的去除方式:分別使用vim, Python, 及bash - Kirin
BOM 的去除方式:分別使用vim, Python, 及bash. 0. Kirin written 10 個月ago. 最後更新日期:2022 年01 月3 日. BOM 是Byte Orde...
- 4cyclonedx-bom - PyPI
CycloneDX Python SBOM Generation Tool ... This project provides a runnable Python-based applicati...
- 5在Python中將帶BOM的UTF - 程式人生
我想將它們(理想情況下)轉換為沒有BOM的UTF-8。似乎 codecs.StreamRecoder(stream, encode, decode, Reader, Writer, errors...