MySQL:带变音符号的字符串变为十六进制

时间:2014-02-07 13:42:05

标签: php mysql sql diacritics

我已经看到了charset和umlauts(ä,ö,ü)的一些问题,但我从未见过这样的事情。所以我希望有人能提供帮助。

这是我想要做的。我将一些客户数据从JavaScript文件发送到PHP文件,然后将它们保存在MySQL数据库中。

因此我在JS中生成一个表单,submit()使用方法POST生成表单(accept-charset =“UTF-8”已设置)。
在观看PHP文件时,SQL查询会显示应该是的变音符号。 但是当我将它保存在数据库中时,每个带有变音符号的字符串都会变成一些十六进制值。

这是SQL查询

INSERT INTO anmeldungen 
    (uuid, name, email, address, zip, city, phone, nation, birth, uni, mnr, recommended, week0, week1, week2, week3, totalPrice, courseTotal, earlyBonus, priceToPay, toPayLater) 
VALUES
    ( "51ad3b36-8ff7-11e3-8299-406186eee454","Daniel Gördes","some@mail.com","Address 7","1010","Wien","123456789","deutsch","1989-05-07","Uni Wien","0001522633","Jhon Doe","Experimentelle Architektur","Karriere des Künstlers","","", "750","800","200","750","0" );

在数据库中,名称(DanielGördes)变为44616e69656c2047c3b672646573,这与包含变音符号的每个字符串相同。它并不总是相同的十六进制值。

数据库中名称字段的设置为varchar(100)collation utf8_bin

我在发送查询之前也使用$db->set_charset("utf8");

0 个答案:

没有答案