![](/img/trans.png)
[英]How do I grep for special character(control characters) using hex representation
[英]How to replace ISO-8889 characters and hex representation in direct way?
我有一個 HTML 文件,我想將 ISO-8859-1 代碼轉換為 UTF-8。
有時,在文件中,特殊字符以這種格式出現
Ȁ
ȃ
有時,特殊字符以這種格式出現
È
Ë
在這兩種情況下,我都想用 HTML 標識替換它們,如下所示:
È
Ë
我試過用awk
這樣做:
awk '{gsub(/\200/, "\\È" , $0); print}' file
但在這種情況下,僅替換È
而不是其等效的Ȁ
。
有沒有辦法在單個/直接命令中替換這些字符,或者需要同時考慮兩種方式? 我的意思是,對每個字符執行以下操作?
awk '{ gsub(/\Ȁ/, "\\È" , $0)
gsub(/\200/, "\\È" , $0); print}' file
如果有更有效的方法或使用其他工具,我願意接受建議。 提前致謝。
一種方法,使用 perl HTML::Entities模塊(可通過您的操作系統包管理器或 CPAN 如果尚未安裝)轉換所有實體和非 ASCII 字符:
$ cat example.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Testing È and Ë
<p>Testing È and Ë
</body>
</html>
$ file example.html
example.html: HTML document, ISO-8859 text
$ perl -Mopen=IN,":encoding(iso-8859-1)" -MHTML::Entities -ne \
'print encode_entities(decode_entities($_), "^\n\x20-\x25\x27-\x7e")' example.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Testing È and Ë
<p>Testing È and Ë
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.