-1

我有这个查询:

insert into orders (customers_id, customers_name) values ('51064', 'Šample Šample')

如果我从 PHP 执行此查询,我的数据库记录将变为

[51604, '?ample ?ample'] (if executed with MySQLi) or 

[51604, 'Šample Šample'] (with mysql_query)

我还注意到,如果我使用 $_GET 中的值

insert into orders (customers_id, customers_name) values ('51064', {$_GET['name']})

它变成 [51064, 'Åample Åample']

但是,如果我使用“Navicat”之类的软件手动插入查询,它会使用正确的字符保存查询(所以我认为字符集是正确的)

我需要从 PHP以正确的方式保存字符 Š (和许多其他字符)。

4

2 回答 2

0

设置从数据库服务器来回发送数据时要使用的字符集。

$mysqli->set_charset("utf8")

这是首选

// Will not affect $mysqli->real_escape_string();
$mysqli->query("SET NAMES utf8");

http://www.php.net/manual/en/mysqli.set-charset.phphttp://www.php.net/manual/en/mysqlinfo.concepts.charset.php

于 2013-10-29T08:51:49.817 回答
-1

在使用 DB 之前设置 Mysql 编码。

mysql_query("SET NAMES 'utf8'");

或使用 utf8 utf8_encode() utf8_decode()函数

于 2013-10-29T08:47:05.417 回答