我正在使用從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
非常感謝您!