gpt4 book ai didi

perl - 如何在 perl 中识别一组字符串中的所有非基本 UTF-8 字符

转载 作者:行者123 更新时间:2023-12-04 06:31:05 29 4
gpt4 key购买 nike

我正在使用 perl 的 XML::Writer 为名为 OpenNMS 的程序生成导入文件。根据documentation我需要将所有特殊字符预先声明为 XML 实体声明。显然,我需要查看我正在导出的所有字符串并对使用的特殊字符进行编目。确定 perl 字符串中哪些字符相对于 UTF-8 编码“特殊”的最简单方法是什么?有什么办法可以算出这些字符的实体名称应该是什么?

最佳答案

要查找“特殊”字符,您可以使用 ord找出代码点。下面是一个例子:

# Create a Unicode test file with some Latin chars, some Cyrillic,
# and some outside the BMP.
# The BMP is the basic multilingual plane, see perluniintro.
# (Not sure what you mean by saying "non-basic".)
perl -CO -lwe "print join '', map chr, 97 .. 100, 0x410 .. 0x415, 0x10000 .. 0x10003" > u.txt

# Read it and find codepoints outside the BMP.
perl -CI -nlwe "print for map ord, grep ord > 0xffff, split //" < u.txt

阅读 perluniintro 可以获得很好的介绍.

我不确定您在“导出的 XML”部分中所指的文档是什么意思。
看起来像事实上的 ASCII 并且不使用 Unicode 的系统的一些限制。
或者是对 XML 的误解。或两者。

无论如何,如果您正在寻找名称,您可以使用或引用规范名称。
XML Entity Definitions for Characters或其中引用的 HTML 或 MathML 的旧文档之一。

关于perl - 如何在 perl 中识别一组字符串中的所有非基本 UTF-8 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5405625/

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