我已经看到了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");