TinyMCE如何将UTF-8格式的内容保存到MySQL数据库中

8

我将TinyMCE输入发送到POST(一个php文件),然后将其保存在MySQL数据库中。

输入具有UTF-8(土耳其字符)。因此,当我在TinyMCE输入框中键入Türkçe并将其发送到POST时,PHP后端接收到这个字符串:

<p>T&uuml;rk&ccedil;e</p>

我该如何将其转换回 Türkçe,以便可以在 MySQL 中正确保存它?MySQL 的排序规则设置为 utf8_unicode_ci,因此它可以正确保存 UTF-8 字符。我需要在 PHP 中进行转换,我猜测。或者有一种方法可以使 TinyMCE 正确地发送它们?谢谢任何帮助!我认为这个问题与 TinyMCE 本身有关,所以我猜解决方案将是转换 TinyMCE 输出(无论是在 TinyMCE JavaScript 中还是在接收 PHP 脚本中)。即:我不认为改变我的 PHP 配置是解决方案。我猜这些像 &uuml; 这样的字符是 Turkish 字符的 HTML 等价物,因此 htmlspecialchars_decode() 应该有效,但它不接受 Turkish 字符。也许有一种方法可以使 htmlspecialchars_decode() 解码 UTF-8 字符?

你的php.ini文件中是否将UTF-8设置为默认字符集? - Kei
@Kei 或许我可以在我的本地 WampServer 中设置它,但是我无法修改我的 Web 主机中的 php.ini,所以我不知道 :) 但其他(标准)输入可以接收 utf-8 文本并正确保存到数据库中。 - jeff
https://dev59.com/13VC5IYBdhLWcg3wfhGL - Mihai
好的,既然你没有给我更多的细节,我也帮不了你太多。你能否在 $_POST['variable'] 上运行 http://www.php.net/mb_detect_encoding?通过这个输出,我们可以了解很多东西。 - Kei
2个回答

20

使用此代码

    <script type="text/javascript">
       tinymce.init({
           entity_encoding : "raw"
        });
    </script>

-1
tinyMCE.init
({  entities : "Ü = Ü ü = ü Ç = Ç Ç = ç Ö = Ö ö = ö",
    theme : "advanced",
    mode : "textareas",

1
不鼓励只回答代码的答案。请考虑解释您的代码正在做什么以及它如何回答问题。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接