html - 如何将 UTF-8 解码为 HTML 标签
问题描述
我的数据库中保存了一个 HTML 文档,如下所示:
\\u003cp style=\\\"text-align: center; opacity: 1;\\\"\\u003e\\u003cstrong\\u003e\\u003cspan style=\\\"font-size: 18pt;\\\
我知道,这很丑陋,而且我知道,这不是理想的方式,但这是一个遗留系统。
我的任务是获取所有这些 HTML 并将它们转换为 Google Docs 中的文档。实际上,Google Docs 可以很好地将 HTML 解析为其内部格式,但 HTML 必须是有效的 HTML,<p>
而不是\\u003cp
.
我正在尝试将此字符串转换/解码/解析/任何内容转换为有效的 HTML,但到目前为止,没有任何运气。
我已经尝试过的事情
htmlentities gem, CGI decode,Nokogiri::HTML.parse
和JSON.parse
他们都没有完成这项工作。
我也试过string.encode(xxxx)
但也没有运气。我真的希望这种.encode
方法能做到,但我无法让它工作,也许我使用了错误的编码?(我尝试使用所有ISO-xxx
编码)
解决方案
使用Array#pack
:
string = "\\u003cp style=\\\"text-align: center; opacity: 1;\\\"\\u003e\\u003cstrong\\u003e\\u003cspan style=\\\"font-size: 18pt;\\"
string.gsub(/\\u(....)/) { [$1.hex].pack("U") }
# => "<p style=\\\"text-align: center; opacity: 1;\\\"><strong><span style=\\\"font-size: 18pt;\\"
推荐阅读
- mongodb - jaspersoft mongodb 聚合 'cursor' 选项是必需的
- javascript - 递归 setTimeout 是否会导致堆栈信息内存泄漏?
- android - 如何修复“错误:未找到 Gradle DSL 方法:'testImplementation()'”
- arrays - 如何在 Codeigniter 中插入 Json 格式的数据
- javascript - 无法在 PhantomJS 上使用 getElementsByClassName() 获取类
- python - 如何使对象成为python中的数据框
- powerbi - 视觉对象的相对大小和位置
- c++ - 为什么 string::find 的行为不同?
- transactions - 使用 spring 方面事务同步发送到 spring 集成通道
- r - 混合效应模型不返回所有系数