wamp服务器mysql存储限制_错误的编码保存在MySql数据库中..Windows 7,Wamp服务器

我在Windows 7上使用Wamp server 2.1 with PHP 5.3.4,Apache 2.2.17,MySql 5.1.53 .

httpd.conf:AddDefaultCharset“iso-8859-1”

php.ini:default_charset =“iso-8859-1”

我使用php mysqli类在带有latin1编码的表中插入数据,使用latin1编码的列插入latin1_swedish_ci collation . 在php文件中,我通过元标记将charset设置为ISO-8859-1,我使用accept-charset =“ISO-8859-1”属性渲染表单 . 我使用mysqli :: set_charset将数据库连接的charset设置为latin1,但仍然输入的数据已损坏 . 根据我的理解,数据是有效的latin1字符 .

代码:

$dbMain->set_charset('latin1');

$query = "INSERT INTO `table` (" . implode(',', array_keys($data)) . ") VALUES ('" . implode("','", array_values($data)) . "')";

$dbMain->query($query);

数据被破坏:“字符Ä,Ö,Ü,ä,ö,ü和ß . Shop-ProduktefürdieElektronik”

当我通过latin1连接读取数据时,它给了我垃圾(带有问号的黑色钻石)而不是我插入的数据 . 当我通过utf8连接读取数据时,它会显示正确的字符 . 在SqlYog(MySql客户端)中也一样..如果我运行“SET NAMES latin1”并浏览表,我会看到barbage字符 . 如果我运行“SET NAMES utf8”并浏览表格,我会看到正确的文字 . 这有什么不对?

更新:

我在MySql客户端中运行了以下查询:

SET NAMES latin1;

SELECT my_column,HEX(my_column) FROM my_table;

并得到了这个结果

|my_column|HEX(my_column)|

--------------------------

| ß | C39F | (entered manually from MySql client)

| � | DF | (entered from php via latin1 connection)

我的数据库已经过了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值