html - bash:将 html 实体转换为 UTF-8,但保留现有的 UTF-8
问题描述
就像这个问题一样,我需要将 html 实体(例如&
)转换为 UTF-8(&
),同时忽略其他 UTF-8 字符。不同之处在于,就我而言,我需要通过 bash 命令行执行此操作。
我可以使用类似recode
and run之类的工具,echo '&' | recode html..utf-8
它可以转换为&
就好了,但是在字符串中使用 UTF-8 字符,例如
echo 'Arabic & ٱلْعَرَبِيَّة' | recode html..utf-8
我得到:
Arabic & Ù±ÙÙعÙرÙبÙÙÙÙØ©
当然,这不是我需要的。最后应该是这样的:
Arabic & ٱلْعَرَبِيَّة
有没有办法做到这一点,而不需要一堆凌乱且看似无穷无尽的正则表达式?谢谢
解决方案
perl 单行:
$ echo 'Arabic & ٱلْعَرَبِيَّة' | perl -CS -MHTML::Entities -ne 'print decode_entities($_)'
Arabic & ٱلْعَرَبِيَّة
需要HTML::Entities模块,该模块是较大的HTML::Parser包的一部分。通过您的操作系统包管理器或最喜欢的 CPAN 客户端安装。
推荐阅读
- c# - 部署 blazor ServerSide 应用程序时服务器上缺少内容
- flutter - Flutter 在 ListView 中加载 Future 列表?
- reactjs - Jquery 脚本在 nextjs 应用程序中无法正常工作
- regex - 正则表达式(PCRE):匹配所有以字符串存在为条件的数字
- python - gspread 删除特定单元格并向上移动
- java - 带有来自静态类的 getString 的 ArrayList
- excel - 如何自动更正某些单词?
- python - 如何将打印文本*所有*类型的控制台居中?
- excel - Excel 条件格式 - 两个条件
- javascript - 如何组合两个数据集并返回单个对象?