Php 将纯文本从textarea正确存储到MySQL数据库

Php 将纯文本从textarea正确存储到MySQL数据库,php,html,mysql,textarea,Php,Html,Mysql,Textarea,我有一个很大的文本区,在那里可以写文本 <textarea class="textarea"></textarea> 我正试图将此文件中的纯文本(任何人类语言)存储到数据库(文本字段)中 问题是:当我从其他网站复制某些文本时,一些字符返回为unicode,例如,'变成了%u2019(而我自己的键盘上的'保持为')。我认为这是因为它是一种不同的文本样式/格式 之后是mysqli\u real\u escape\u字符串,但到目前为止,它似乎工作得很好 问题是:如何替

我有一个很大的文本区,在那里可以写文本

 <textarea class="textarea"></textarea>

我正试图将此文件中的纯文本(任何人类语言)存储到数据库(文本字段)中

问题是:当我从其他网站复制某些文本时,一些字符返回为unicode,例如,
'
变成了
%u2019
(而我自己的键盘上的
'
保持为
'
)。我认为这是因为它是一种不同的文本样式/格式

之后是mysqli\u real\u escape\u字符串,但到目前为止,它似乎工作得很好


问题是:如何替换这个unicode或避免这样的输入?我可能忘了指定一些关于文本格式的内容(在标题?)

如果您确定传递到数据库连接的数据是unicode(并且没有转义,等等),那么问题可能出在数据库驱动程序本身

确保将其设置为
UTF-8

清单
  • 确保输入的数据未被替换(撇号、引号等除外)
  • 确保数据库驱动程序设置为以
    UTF-8
    编码发送数据(例如,对于PDO:
    $dbHandle=new PDO(“mysql:host=$dbHost;dbname=$dbname;charset=UTF-8”,$dbUser,$dbPass);
    。请注意
    charset
    部分
  • 确保列排序规则设置为与UTF-8兼容的编码

  • 如果您确定传递到数据库连接的数据是unicode(并且没有转义,等等),那么问题可能出在数据库驱动程序本身

    确保将其设置为
    UTF-8

    清单
  • 确保输入的数据未被替换(撇号、引号等除外)
  • 确保数据库驱动程序设置为以
    UTF-8
    编码发送数据(例如,对于PDO:
    $dbHandle=new PDO(“mysql:host=$dbHost;dbname=$dbname;charset=UTF-8”,$dbUser,$dbPass);
    。请注意
    charset
    部分
  • 确保列排序规则设置为与UTF-8兼容的编码

  • 使用:html\u实体\u解码

    <textarea class="textarea"><?php echo html_entity_decode($text_to_show); ?></textarea>
    
    
    
    或者可能:

    <textarea class="textarea"><?php echo html_entity_decode($text_to_show, ENT_COMPAT, 'UTF-8'); ?></textarea>
    
    
    
    确保有一些utf8数据库,而不是默认的latin1

    另外,如果您使用的是html5 doctype,请不要忘记键入:

    <meta charset="utf-8">
    

    使用:html\u实体\u解码

    <textarea class="textarea"><?php echo html_entity_decode($text_to_show); ?></textarea>
    
    
    
    或者可能:

    <textarea class="textarea"><?php echo html_entity_decode($text_to_show, ENT_COMPAT, 'UTF-8'); ?></textarea>
    
    
    
    确保有一些utf8数据库,而不是默认的latin1

    另外,如果您使用的是html5 doctype,请不要忘记键入:

    <meta charset="utf-8">
    

    在服务器上运行此操作:

    SHOW VARIABLES LIKE 'character_set%';
    
    查看服务器配置为什么字符集,如果需要,将其更改为
    UTF-8


    查看:

    在您的服务器上运行此操作:

    SHOW VARIABLES LIKE 'character_set%';
    
    查看服务器配置为什么字符集,如果需要,将其更改为
    UTF-8


    看看:

    在你的标题中使用utf-8编码可能会有帮助@Deepu,他在将unicode文本保存到数据库中时遇到问题,而不是在页面上显示。实际上,当我回显帖子['textareaname'](在存储到数据库之前)它已经是unicode%u2019格式。我相信不应该是。标头设置为UTF-8。这只发生在特定格式的字符中。例如,此字符:“其他一些字符只返回一个?符号。在您的标题中使用UTF-8编码可能会有帮助@Deepu,他在将unicode文本保存到数据库中时遇到问题,而不是显示它在页面上。实际上,当我回显帖子['textareaname'](在存储到数据库之前)时,它已经是unicode%u2019格式。我相信不应该是这样的?标题设置为UTF-8。它只发生在特定格式的字符上。例如,这个字符:“一些其他字符只返回一个?符号。”。