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
部分如果您确定传递到数据库连接的数据是unicode(并且没有转义,等等),那么问题可能出在数据库驱动程序本身 确保将其设置为
UTF-8
清单
UTF-8
编码发送数据(例如,对于PDO:$dbHandle=new PDO(“mysql:host=$dbHost;dbname=$dbname;charset=UTF-8”,$dbUser,$dbPass);
。请注意charset
部分使用: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。它只发生在特定格式的字符上。例如,这个字符:“一些其他字符只返回一个?符号。”。