【问题标题】:Emoji characters breaking the Apex HTTP Engine?表情符号字符破坏 Apex HTTP 引擎?
【发布时间】:2018-09-06 21:39:46
【问题描述】:

当我在 Apex 页面的任何位置输出如下表情符号时,HTTP 输出会中断。

图 1 - 表情符号示例:

???? ??? ??? ??? ??? ??? ??? ????

图 2 - 损坏的 HTML

我的意思是,页面上看似随机的字符消失了,你们都知道这会导致整个页面无法正确呈现。

对我来说,这似乎是一个字符集问题 - 也许 Apex 无法计算正确的长度或其他什么?

我在 apex.oracle.com 上使用 Oracle Apex 18.1。

复制步骤:

  1. 转到https://apex.oracle.com/pls/apex/f?p=51681
  2. 在“普通图标计数”字段中输入 1000,然后按“渲染”
  3. 1000颗心会出现
  4. 在 Emoji Count 字段中输入 1000,然后按 Render
  5. HTML 会在某处中断(可能会出现约 1000 个表情符号)

输出字符的代码位于动态 PL/SQL 区域中,如下所示:

DECLARE
    l_text VARCHAR2(10) := '♥';
BEGIN
    FOR i IN 1.. NVL(:P1_EMOJICOUNT_1,10) LOOP
        htp.p('<span id="myDiv'||i||'">'|| l_text ||'</span>');
    END LOOP;
END;

【问题讨论】:

  • 这很奇怪。不仅如此,它还从 v692..6-brokenone..718 中完全跳过了大约 20 个。
  • 更奇怪的是 htp.p(i||'->'||l_text 只是花花公子
  • 是的,这种行为非常奇怪。我是否在 htp.p 中输出 HTML 并不重要。只是网站上存在的表情符号会破坏页面的整个 HTML。
  • 如果你选择一个非常高的数字,比如 100000,它甚至会导致服务器错误。
  • 如果将那段代码放入一个存储过程中,并创建一个源是该 PL/SQL 过程的 Apex 区域会发生什么?

标签: oracle plsql oracle-apex


【解决方案1】:

显然这是 PL/SQL Web Toolkit 中的一个问题,至少 Apex 软件开发高级总监 Joel R. Kallman 是这么说的。

Quote:

有趣的问题。但似乎问题甚至在 APEX 之下, 在 PL/SQL Web Toolkit 中,它无法处理这些数据。

【讨论】:

  • 如果和这个community.oracle.com/thread/4196690有关,相信19.2已经修复了tryapexnow.com/ords/f?p=2158:2
  • 19.2 是数据库 19.2?因为显然这不是一个顶点问题
  • 我仍然很好奇这个问题是如何解决的,我只知道它在 APEX 19.2 早期采用者环境中得到了解决
  • tryapexnow 目前在 18.0
猜你喜欢
  • 2014-10-08
  • 1970-01-01
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
  • 2017-05-20
  • 2015-12-11
  • 1970-01-01
相关资源
最近更新 更多