我正在开发一个用于母语学习的应用程序。我需要将一些字符存储为'ẽũ'。我的数据库设置为utf-8字符集,默认排序规则,以及受此字符影响的表格。
问题是当我尝试使用常规SQL插入添加行时:
INSERT INTO text(spanish,guarani) VALUES('text','ẽũ');
这会发出警告:
Warning Code : 1366 Incorrect string value: '\xE1\xBA\xBD\xC5\xA9' for column 'guarani' at row 1
结果是“??”哪里有那些角色。
问题:这些字符不属于UTF-8字符集?我需要哪一个?
注意:与latin-1相同的问题
感谢。
答案 0 :(得分:1)
QUICK !!!阅读http://www.joelonsoftware.com/articles/Unicode.html
需要阅读。
读完之后,你应该问问自己:
答案 1 :(得分:0)
正如其他答案一样,您应该阅读并理解Unicode的基础知识。 这并不困难,(有一天你能掌握它),它几乎是每个程序员(当然也适合你)所需要的知识,它是非短暂的知识,将使你的生活更简单,更快乐。
这些字符不包括在内 UTF-8字符集?
UTF-8是一个Unicode字符集,Unicode涵盖(实际上)每个字符。另一方面,MYSQL的'utf8'编码不是真正的UTF-8,它会留下一些字符(在BMP之外)。但这不是你的问题。
http://www.fileformat.info/info/unicode/char/1ebd/index.htm http://www.fileformat.info/info/unicode/char/169/index.htm
你看到你的两个字符是有效的Unicode,在BMP内部(因此Mysql瘫痪'utf8'应该支持它们),yu甚至可以看到它的UTF-8编码。而且,正如您所见,\xE1\xBA\xBD\xC5\xA9
似乎恰到好处。所以问题似乎在其他地方。你确定DB是utf8吗?