我正在使用从webform向mySQL数据库插入数据的web-app(JSP),数据以UTF8编码的参数发送到servlet。在一定程度上,应用程序与普通字母和符号完美结合。但如果我试图插入任何4字节字符,它将被问号(?)符号替换。将UTF8数据插入SJIS DB(MySQL)
我敢肯定这个问题有事情做与具有UTF8,因为只有3个字节的MySQL的奇怪的方式,但这次整理是SJIS。
我必须俯视一些东西,所以我会很感激任何帮助,我一直在为这一天将我的头撞到墙上。
为整理信息,我已经尝试了多种不同的设置,结果都是一样的,一切工作正常,除了4个字节的字符。
这是默认归类:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%'
OR Variable_name LIKE 'collation%';
+--------------------------+-------------------+
| Variable_name | Value |
+--------------------------+-------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | sjis |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| collation_connection | utf8_general_ci |
| collation_database | sjis_japanese_ci |
| collation_server | latin1_swedish_ci |
+--------------------------+-------------------+
我还试图与以下:
show FULL COLUMNS FROM XYZ;
+--------+------------------+------------------+------+-----+---------+----- -----------+---------------------------------+---------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+--------+------------------+------------------+------+-----+---------+----- -----------+---------------------------------+---------+
| X | int(10) unsigned | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | |
| Y | date | NULL | YES | | NULL | | select,insert,update,references | |
| Z | varchar(255) | sjis_japanese_ci | YES | | NULL | | select,insert,update,references | |
+--------+------------------+------------------+------+-----+---------+----------------+---------------------------------+---------+
:表我插入(Z列)
+--------------------------+------------------+
| Variable_name | Value |
+--------------------------+------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | sjis |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | sjis |
| character_set_system | utf8 |
| collation_connection | utf8_general_ci |
| collation_database | sjis_japanese_ci |
| collation_server | sjis_japanese_ci |
+--------------------------+------------------+
示例内部JAVA级编码
设置如下
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("SHIFT_JIS");
我知道作为以前进口的(LODA DATA INFILE)数据有这些字符,他们是可见的DB(未问号)DB可以保存这个字符。
左右的朋友,我问这个你的帮助,这可能是一件很容易的(或不可能的),如果你需要更多信息,我可以从DB /源得到它。 UTF8 4字节字符的
的例子是:(可能不是你的浏览器中可见)
或:) https://codepoints.net/U+1F4A9
非常感谢您!