数据类型Blob MySQL

时间:2019-08-26 15:37:49

标签: mysql spring-data-jpa blob

我的同事设置了一个MySql数据库。对于两个可以输入较长文本的字段,他使用了数据库类型BLOB。现在的问题是,当有人输入德语“ Umlaute(ä,ö,ü)”时。当我稍后从数据库检索它以显示给用户时,这些显示不正确。相反,它们显示为怪异的迹象。我的意思是,在我的Java代码中,这些Blob对象是简单的字符串。我该怎么做才能再次正确显示这些特殊字符(Umlaute)?

1 个答案:

答案 0 :(得分:0)

简短的回答:您需要将列类型更改为TEXT

BLOB中的第一个B代表 binary 。通过这种列类型,您可以明确地告诉MySQL,您不希望将其内容处理为文本。因此,您需要询问每个输入数据的人,他们使用的是哪种编码,然后从该编码转换为应用程序的编码。当然,您也没有任何方法可以控制其他人如何写入和读取数据,因此最终您可以在不同的行中找到不同的编码。

BTW,BLOBTEXT的最大长度为65,535(216 − 1)(对于BLOB为字节,对于TEXT为字符),与{{3 }}。如果您确实想要不适合VARCHAR的大文本,则可以考虑使用更大的类型,例如VARCHARMEDIUMTEXT

相关问题