gpt4 book ai didi

HTML::Entities 编码和单符号

转载 作者:行者123 更新时间:2023-11-28 02:14:22 25 4
gpt4 key购买 nike

我正在尝试使用以下 perl 行,如下所述:Does anyone know of a vim plugin or script to convert special characters to their corresponding HTML entities? - 在 Vim 中编码 HTML 实体。

%!perl -p -i -e 'BEGIN { use HTML::Entities; use Encode; } $_=Encode::decode_utf8($_) unless Encode::is_utf8($_);  $_=Encode::encode("ascii", $_, sub{HTML::Entities::encode_entities(chr shift)});'

它工作正常(£ 到 £,弯引号等)除了它自己的 & 符号 - & - 保持原样。

我尝试删除 uf8 解码,并查看了 HTML::Entities 的 CPAN 文档。

回答:

@ZyX 已经回答了最初的问题,但正如其他人在评论中指出的那样,这是多余的,因为如果您使用 UTF-8 字符集(我是,都带有元标记 -

<meta charset="utf-8">

还有在 Apache 配置中:

AddDefaultCharset utf-8

确实,在这种情况下添加它们可以说是一件坏事;文件更大,文本被混淆,无论如何都想使用源代码。

确保您用来创建文件的任何编辑器也以 UTF-8 编写文件非常重要。

最佳答案

我的回答是只对 ascii 范围以上的字符进行编码。如果你想将某些东西编码为 html,你应该使用

$text=HTML::Entities::encode_entities($text);

:

%!perl -MHTML::Entities -MEncode -p -i -e '$_=Encode::decode_utf8($_) unless Encode::is_utf8($_); $_=HTML::Entities::encode_entities($_);'

我没有在那个答案中使用它,因为 TS 只请求编码 unicode 字符而不编码 < , > , &

顺便说一句,你可以使用$text=HTML::Entities::encode_entities($text, '<>&"');只对真正不安全的字符进行编码(尽管我想这很容易用 vimscript 表达:

:let entities={'<': 'lt', '>': 'gt', '&': 'amp', '"': 'quot'}
:execute '%s/['.escape(join(keys(entities), ''), '\-]^').']/\="&".entities[submatch(0)].";"/g'

关于HTML::Entities 编码和单符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6081349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com