Forgot password?
 Create new account
View 82|Reply 2

编写 shell 脚本将所有 .htm 文件从 Windows-1252 转换为 UTF-8 编码

[Copy link]

3147

Threads

8493

Posts

610K

Credits

Credits
66163
QQ

Show all posts

hbghlyj Posted at 2024-9-26 15:43:28 |Read mode
Windows-1252 在 1985 至 1990 年间最为流行,如果你有这么老的文件,你可能需要转换
  1. for each in  ls *.htm
  2. do
  3.   iconv -f windows-1252 -t utf-8 $each > $each.tmp
  4.   mv $each.tmp $each
  5. done
Copy the Code
iconv是一个常用的Linux命令,用于进行字符集转换。

3147

Threads

8493

Posts

610K

Credits

Credits
66163
QQ

Show all posts

 Author| hbghlyj Posted at 2024-9-26 15:46:40
Windows-1252 的“可用字符”是 UTF-8 的一个子集,因此可以无损转换为 UTF-8
打开 Windows-1252 时看到乱码的原因是字节 127 到 255 之间的字符,而 UTF-8 对这些字符的编码不同。

3147

Threads

8493

Posts

610K

Credits

Credits
66163
QQ

Show all posts

 Author| hbghlyj Posted at 2024-9-26 15:52:35
hbghlyj 发表于 2024-9-26 07:46
打开 Windows-1252 时看到乱码
有没有办法辨别字符串的编码是 utf-8 还是 cp1252?
如果编码是 CP1252 ,如果有几个字节在 0x80-0xFF 范围内,则很可能会产生无效的 UTF-8。
因为 UTF-8 对于构成有效字节序列非常挑剔,而每个随机字符串都是有效的 cp1252,但很少有随机字符串是有效的 UTF-8。

手机版Mobile version|Leisure Math Forum

2025-4-20 22:23 GMT+8

Powered by Discuz!

× Quick Reply To Top Return to the list