douke3335 2011-09-07 00:25
浏览 36
已采纳

用户输入的字符是破坏xml_parse_into_struct完成的xml解码

thanks for answering! This is about PHP/MySQL

The user enters some text that is then processed through htmlentities():

$new_userinput = htmlentities($userinput, ENT_QUOTES);

This entry is stored in an XML:

...
<entrylist>
    <list>$new_userinput</list>
    <info>$someinfo</info>
</entrylist>
...

The xml file is stored in a database in UTF-8 format. The HTML for the site is also set with UTF-8.

What we observed is with a specific input, the xml being processed by:

$p = xml_parser_create();
xml_parse_into_struct($p, $xmlentry, $values, $index);
xml_parser_free($p);`

is not processed properly by the xml_parse_into_struct().

What we see in the database is the following:

...
<note>Creatives share shots&acirc;€”small screenshots.</note>
...
  • 写回答

1条回答 默认 最新

  • dongshui9690 2011-09-07 01:36
    关注

    You need to specify the charset in htmlentities(), eg

    $new_userinput = htmlentities($userinput, ENT_QUOTES, 'UTF-8');
    

    To illustrate

    echo htmlentities("€", ENT_QUOTES); // &acirc;?&not;
    
    echo htmlentities("€", ENT_QUOTES, "UTF-8"); // &euro;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?