我正试着把波斯语的细绳送到 mysql
数据库;但它保存的数据是这样的 "%D8%AC%D8%AF%DB%8C%D8%AF"
. 英语字符串没有问题。
var new = $(this).val();
$.ajax({
url: '/url/' + new,
type: 'GET',
success: function () {
window.location.href = window.location.href;
}
});
这是我的php代码。
public function url($new){
$db = Db::getInstance();
$db->insert("INSERT INTO table (column) VALUES ('$new')");}
如何解决这个问题?
我的url字符有问题。我发现如果我使用post方法,它将被解决。我使用mvc结构,我想在我的url中有一些波斯语字符串。那么我该如何解决这个新问题呢???。。。
4条答案
按热度按时间i5desfxk1#
修改您的表
ALTER TABLE 'your table name' MODIFY 'column name' VARCHAR(20) CHARACTER SET UTF8;
在你的网页上显示波斯语你需要使用代码<meta charset="UTF-8">
对于url:$string=“%e0%a4%89-%e0%a4%85%e0%a4%b9%e0%a4%bf%e0%a4%b2%e0%a5%87-%e0%a4%95%e0%a4%b9%e0%a4%be%e0%a4%81-%e0%a4%9b-%e0%a4%a4';
echo rawurldecode($string);
ddhy6vgd2#
在数据库中插入波斯语或阿拉伯语等unicode字符之前,需要在db连接上设置utf-8字符集。
另外,为了防止出现任何问题,在创建存储波斯语字符或其他unicode字符的数据库时,必须将数据库排序规则设置为utf8 general ci。
vshtjzan3#
运行此查询可更改表的字符集和排序,以支持unicode字符。
kb5ga3dv4#
有三个层次可能会导致你的问题。首先,您的数据库将有一个默认的字符编码。其次,表可以有一个优先的显式字符编码。因此,您需要确保通过以下方法之一为表设置unicode编码集。你说你的table被设置为utf8\u general\u ci,所以这部分应该没问题。第三,连接本身有一个特定的编码。这可以在mysql客户端配置默认值中设置为:[mysqld]init\u connect='set names utf8'
也可以在代码中设置。例如,对于php,可以执行以下操作:mysql\u set\u charset(“utf8”,$conn);或$db->exec('set character set utf8')
你还没说$db是什么,所以不能确定。但是像这样的。
最后,确保它没有真正工作,但你只是不知道它。您的网页应该设置为utf8。检查您从网页上实际收到的信息,不要仅仅假设它发送的是unicode。