在DB中保存文本“février.xlsx”在通过J2EE应用程序保存时将保存为“février.xlsx”。
数据库版本:Oracle Database 11g企业版11.2.0.4.0版
NLS_CHARACTERSET - AL32UTF8
NLS_NCHAR_CHARACTERSET - AL16UTF16
public DocumentModel save(DocumentModel model) {
DocumentModel docModel = null;
try {
LOGGER.info("Name before saving into DB :"+model.getDocumentFileName());
docModel = entityManager.merge(model);
} catch (Exception exp) {
LOGGER.error("Exception occured");
}
return docModel;
}
表中的列数据类型:VARCHAR2(256 CHAR)
保存到DB之前的名称:février.xlsx
名称保存的数据库:février.xlsx
我尝试使用insert语句手动插入数据库。它插入正确但从应用程序插入时不正确。
答案 0 :(得分:0)
困难总是要确定数据库中是否存储了错误的值,或者数据库中是否存储了正确的值。显示检索到的值时,总是有可能发生错误。
Oracle具有函数dump()。
select dump(column),column from table;
这将显示字节值,因为它们实际存储在数据库中。使用此选项,您可以根据要存储的字符和数据库字符集来检查这些值是否正确。
http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions055.htm#SQLRF00635