我将序列化对象保存到mysql数据库blob。
插入一些测试对象然后尝试查看表格后,我会多次看到垃圾和“PuTTYPuTTY”。
我认为这与字符编码和包含奇怪字符的blob有关。
我只是想查看是否会导致数据库出现问题,或者这只是putty显示数据的问题?
QuizTable的描述:
+-------------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+-------------------------------------------------------------------------------------------------------------------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+-------------------------------------------------------------------------------------------------------------------+
| classId | varchar(20) | latin1_swedish_ci | NO | | NULL | | select,insert,update,references | FK related to the ClassTable. This way each Class in the ClassTable is associated with its quiz in the QuizTable. |
| quizId | int(11) | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | This is the quiz number associated with the quiz. |
| quizObject | blob | NULL | NO | | NULL | | select,insert,update,references | This is the actual quiz object. |
| quizEnabled | tinyint(1) | NULL | NO | | NULL | | select,insert,update,references | |
+-------------+-------------+-------------------+------+-----+---------+----------------+---------------------------------+-------------------------------------------------------------------------------------------------------------------+
当我尝试查看表格内容时看到的内容:
select * from QuizTable;
questionTextq ~ xp sq ~ w
t q1a1t q1a2xt 1t q1sq ~ sq ~ w
t q2a1t q2a2t q2a3xt 2t q2xt test3 | 1 |
+-------------+--------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
3 rows in set (0.00 sec)
答案 0 :(得分:1)
我相信你可以在blob和字符串上使用hex函数。您可以运行这样的查询。
Select HEX(quizObject) From QuizTable Where....
答案 1 :(得分:0)
Putty正在对它认为输出流中的终端控制字符串作出反应。这些字符串允许远程主机在不重绘整个屏幕的情况下更改本地终端的某些内容,例如设置标题,定位光标,清除屏幕等。
当试图“显示”像这样编码的东西时,很多二进制数据最终会发送这些字符。
你也会得到这个反应来捕获二进制文件。
blob将完全忽略您拥有的任何字符编码设置。它真的用于存储二进制对象,如图像或zip文件。
如果此字段仅包含文字,我建议使用文字字段。