我正在使用XMLHttpRequest
将一些行插入MYSQL数据库。我将相关的表列定义为接受UTF-8字符(Collation: utf8_general_ci
)。
从请求启动的查询是:
INSERT INTO e4s_event_list (producerID, eventID, eventName, eventDescription, eventVenue, eventDate)
VALUES('2', 'f49c104b-6193-47b7-b196-ca914e5238c4', 'בכורה מאת שרון אייל וטאבולה ראסה מאת אוהד נהרין', '', 'Conversion Venue - 0', '2012-06-04T20:30:00')
如果我从phpMyAdmin
查询此内容,eventDescription
列会毫无问题地获得所需的值。但是,当从XMLHttpRequest
启动查询时,eventDescription
列会获得此值:
בכורה מ×ת שרון ×ייל וט×בולה..
我当前的标题是:
XMLHttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
XMLHttpRequest.setRequestHeader("Content-length", params.length);
XMLHttpRequest.setRequestHeader("Connection", "close");
我尝试将Content-Type
更改为:
XMLHttpRequest.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
但是,由于某种原因,该请求根本不起作用。
我知道这不是数据库定义问题,因为所有其他未从XMLHttpRequest
启动的查询都是而不是被搞砸了。
如何正确插入希伯来字符? 感谢。
答案 0 :(得分:2)
MySQL可能认为PHP将字符串作为另一种字符编码传递(例如ISO-8859-1)。如果是这种情况,您可以通过在将数据写入数据库之前将此查询发送到MySQL来解决此问题:
SET NAMES=UTF8;