替换 HTML 源中的特殊字符

发布于 2024-08-24 10:33:57 字数 239 浏览 7 评论 0原文

我是 HTML 编码新手,我知道 HTML 有一些保留字符供其使用,并且它还按字符代码显示一些字符。例如 -:

Œ  is   Œ
©  is   ©
®  is    ®

我在 std::string 中有 HTML 源代码。我如何将它们破译为实际形式并从 std::string 替换?是否有任何具有可用源的库或者可以使用宏预处理器来完成?

I'm new to HTML coding and I know HTML has some reserved characters for its use and it also displays some characters by their character code. For example -:

Œ  is   Œ
©  is   ©
®  is    ®

I have the HTML source in std::string. how can i decipher them into their actual form and replace from std::string? is there any library with source available or can it be done using macros preprocessors?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

潜移默化 2024-08-31 10:33:57

我建议使用一些可以自动为您进行转换的 HTML/XML 解析器。手动正确解析 HTML 极其困难。如果您坚持自己动手,Boost String Algorithms 库提供了有用的替换函数。

I would recommend using some HTML/XML parser that can automatically do the conversion for you. Parsing HTML correctly by hand is extremely difficult. If you insist on doing it yourself, Boost String Algorithms library provides useful replacement functions.

安稳善良 2024-08-31 10:33:57
Œ 是 Œ

不,不是。 Œ 是“部分向后行”。 Œ 的正确数字实体是 ŒŒ

Œ  is   Œ

No it isn't. Œ is 'PARTIAL LINE BACKWARD'. The correct numeric entities for Œ are Œ and Œ.

夜灵血窟げ 2024-08-31 10:33:57

数字实体的一种方法是使用正则表达式,如 &#([0-9]+);,获取数值并将其转换为 ASCII 字符(可能使用 sprintf(C++ 中))。

对于命名实体,您需要构建映射。您可能可以进行简单的字符串替换来转换为数字,然后使用上面的方法。 W3C 在这里有一个表格:http://www.w3。 org/TR/WD-html40-970708/sgml/entities.html

但是,如果您尝试读取或解析字符串中的一堆 HTML,则应该使用 HTML 解析器。搜索很多关于SO的问题。

One method for the numeric entities would be to use a regular expression like &#([0-9]+);, grab the numeric value and convert it to the ASCII character (probably with sprintf in C++).

For the named entities you would need to build a mapping. You could probably do a simple string replace to convert to the numbers, then use the method above. W3C has a table here: http://www.w3.org/TR/WD-html40-970708/sgml/entities.html

But if you're trying to read or parse a bunch of HTML in a string, you should use an HTML parser. Search for the many questions on SO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文