【问题标题】:Display correct characters when Select on column containing HTML在包含 HTML 的列上选择时显示正确的字符
【发布时间】:2015-02-13 17:48:39
【问题描述】:

在我的数据库中,我存储了一些 html 代码(来自 CKEditor),我希望能够在 PhpMyAdmin 中检查这些值。

有一个小问题:HTML 是用法语编写的,所以有很多 &eacute: 或其他类型的 html 字符,使值难以阅读。

我知道有一些设置可以避免 CKEditor 用 &eacute: 替换字符,但我现在不想更改代码或配置中的任何内容。

是否有任何 MySQL 命令 可以正确显示文本?

注意:不需要执行 str_replace 或 kind。

编辑: 例如存储如下的元素:

<div>
    &eacute:l&eacute:phant
</div>

我想在我的结果栏中阅读:

<div>
    éléphant
</div>

【问题讨论】:

  • 我真的不知道如何使用它来解决我的问题
  • 你能写一个输入和输出数据(你想显示的)吗?
  • 当你回显它时,你可以将它包装在htmlentities() 函数中
  • 我其实是想在phpmyadmin中显示,所以我宁愿找个mysql函数

标签: html mysql phpmyadmin


【解决方案1】:

这很容易通过 phpMyAdmin 的transformation 功能实现。

我的回答假设您已经有一个正确配置的phpMyAdmin Configuration Storage,如果没有,您只需通过编辑examples/create_tables.sql 中的文件来创建表以设置用户名、数据库名称和密码,然后将其导入您的 MySQL服务器。编辑 config.inc.php 以添加从 http://docs.phpmyadmin.net/en/latest/config.html#cfg_Servers_pmadb 开始列出的指令。

之前:

无论如何,请转到“结构”选项卡来编辑您的表格。

单击包含 HTML 实体的列的铅笔图标/更改链接。

在结果页面上,查找“浏览器显示转换”下拉菜单。内置转换之一正是您所追求的:“Text/Plain: Formatted”

点击保存,然后您可以浏览表格,应该会看到转换后的输出。

之后:

【讨论】:

  • 实际上我并不想只更改 1 列的显示。我正在对不同表的许多列进行选择,这些列被加密以使问题复杂化,因此我已经在执行 aes_decrypt(mycolumn, pass),并且我正在寻找另一个 mySQL 函数来包装它: display_html_correctly(aes_decrypt(my_column,通过))
  • 您可以通过对每个列执行相同的过程来将转换应用于多个列(您可以同时编辑它们,不必一次一个)。对 aes_decrypt() 部分感到抱歉,但您没有在问题中提到这一点,所以我不知道。干杯。
【解决方案2】:

恐怕没有办法直接按照你的要求去做。

我发现最好的方法是创建一个解码文本的函数,然后在 select 语句中使用它:

mysql> SELECT HTML_UnEncode('Dr.H&uuml;bner');
+---------------------------------+
| HTML_UnEncode('Dr.H&uuml;bner') |
+---------------------------------+
| Dr.Hübner |
+---------------------------------+ 

这是该函数的链接:

http://forums.mysql.com/read.php?98,246527,246527

【讨论】:

  • 太糟糕了,但感谢您将我链接到该功能!
  • 我的荣幸。我认为这不是您的情况,但请记住,如果您在 'where'、'sort'、'group by' 中使用该功能......索引将无助于加速结果。顺便说一句,在选定的列中你不应该有这个问题:)
猜你喜欢
  • 2016-02-11
  • 2017-03-28
  • 1970-01-01
  • 2012-11-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2016-01-13
  • 1970-01-01
相关资源
最近更新 更多