开发者

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

开发者 https://www.devze.com 2023-01-28 20:27 出处:网络
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\".

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:

$ 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?


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 >.


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


The BOM is not necessary for UTF-8. And Windows Notepad can save UTF-8 with or without BOM.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消