iconv: Converting from Windows ANSI to UTF-8 with BOM

牧云@^-^@ 提交于 2019-11-26 13:49:38

问题


I want to use iconv to convert files on my Mac. The goal is to go from "Windows ANSI" to "whatever Windows Notepad saves, if you tell it to use UFT8".

This is what I want:

anders-johansen-privats-macbook-pro:test andersprivat$ file names.csv 
names.csv: UTF-8 Unicode (with BOM) text, with CRLF line terminators

This is what I use:

iconv -f CP1252 -t UTF-8  names.csv > names.utf8.csv 

This is what I get (not what I want):

file names.utf8.csv 
names.utf8.csv: UTF-8 Unicode text, with CRLF line terminators

How do I get the BOM?


回答1:


You can add it manually by first echoing the bytes into the file:

echo -ne '\xEF\xBB\xBF' > names.utf8.csv

and then concatenating your required information at the end:

iconv -f CP1252 -t UTF-8  names.csv >> names.utf8.csv

Note the >> rather than >.




回答2:


Note that "Windows ANSI" may not be CP1252 - that is configured by users.




回答3:


I needed the opossite. (covert german text from UTF-8 to ANSI)

So command I used:
1. iconv -l (check available formats)
2. iconv -f UTF8 -t MS-ANSI de.txt > output.txt

and now if I open output.txt it is already in ANSI. Job done.



来源:https://stackoverflow.com/questions/4364156/iconv-converting-from-windows-ansi-to-utf-8-with-bom

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!