需要MySQL charset

时间:2011-01-25 11:57:32

标签: mysql utf-8

我正在开发一个用于母语学习的应用程序。我需要将一些字符存储为'ẽũ'。我的数据库设置为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相同的问题

感谢。

2 个答案:

答案 0 :(得分:1)

QUICK !!!阅读http://www.joelonsoftware.com/articles/Unicode.html

需要阅读。

读完之后,你应该问问自己:

  1. 使用什么编码连接。
  2. 使用哪种语言环境进行排序规则。 (如果适用)。
  3. SQL语句的编码是什么?
  4. 字符串文字的编码是什么?
  5. 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吗?