Java 运行时未将UTF-8字符正确存储到SQLite DB
我编写了以下代码来将ASCII数据转换为UTF-8。 但是当我将这些数据存储到SQLite数据库时。它不能正确地存储它 在java中获取UTF-8字符串的代码Java 运行时未将UTF-8字符正确存储到SQLite DB,java,sqlite,utf-8,Java,Sqlite,Utf 8,我编写了以下代码来将ASCII数据转换为UTF-8。 但是当我将这些数据存储到SQLite数据库时。它不能正确地存储它 在java中获取UTF-8字符串的代码 Data = Data.replaceAll(":", ""); byte[] btarrBytes = Hex.decodeHex(Data.toCharArray()); String UTF8Data = new String(btarrBytes, "UTF-8"); java中SQLite的插入查询 查询执行 转换前的输入
Data = Data.replaceAll(":", "");
byte[] btarrBytes = Hex.decodeHex(Data.toCharArray());
String UTF8Data = new String(btarrBytes, "UTF-8");
java中SQLite的插入查询
查询执行 转换前的输入数据是无效的 e3:83:95:e3:83:ac:e3:83:bc:e3:83:a0:e3:83:af:e3:83:bc:e3:82:af 目前,UTF-8数据保存在SQLite DB中,如下所示 繝輔Ξ繝シ繝�繝ッ繝シ繧ッ 但它应该保存如下 フレームワーク 请注意,在调试模式下,数据会正确保存 此外,在转换之后,数据以适当的字符串保存在MYSQL数据库中,我使用c#进行插入。 但数据并没有用正确的字符串从java保存在SQLite DB中,所以我认为问题在于SQLite DB的INSERT语句 正如我所说,在MYSQL上,C#的数据被正确保存。在这里,我创建了一个以N作为前缀的查询,其值如下=>N'{5}'
sb.AppendLine(
string.Format("('{0}', '{1}', '{2}', '{3}', '{4}', N'{5}', '{6}', '0', '{7}', '{8}', '{7}', '{8}'),"
, ID // 0
, DevID //1
, sDTime // 2
, sDevTime // 3
, aryDcaRVerCounter[i].Index.ToString() // 4
, aryDcaRVerCounter[i].Name // 5
, aryDcaRVerCounter[i].Code // 6
, sUpdateTime // 7
, UserId // 8
)
您不需要将ASCII转换为UTF-8。ASCII是UTF-8的一个子集。是否有任何错误?数据在数据库中的外观如何?如何保存数据(您尚未展示如何构建sbValues),如何检索数据,如何打印检索到的数据?如果我是您,我会使用准备好的语句。问题不在转换过程中,您也没有给我们提供太多关于您对值所做的操作、您的语句的外观以及它的运行方式的线索。@realponsignist很抱歉给您带来麻烦。现在我已经找到了问题的原因。数据已正确转换。在首先保存到DB之前,它会出于某种目的保存到文本文件中。从文本文件中再次读取数据。并保存到数据库中。问题在于文本文件的读取方法。我的意思是,它不是用UTF-8阅读的。谢谢你的支持。
Connection objConnect = null;
Statement objStmt = null;
objConnect = objDCASQLiteUtility.getSQliteConnection(sDBPath);
sQuery = objSQliteCreator.getRDataWriteQuery(.............)
objStmt = objConnect.createStatement();
objStmt.executeUpdate(sQuery);
sb.AppendLine(
string.Format("('{0}', '{1}', '{2}', '{3}', '{4}', N'{5}', '{6}', '0', '{7}', '{8}', '{7}', '{8}'),"
, ID // 0
, DevID //1
, sDTime // 2
, sDevTime // 3
, aryDcaRVerCounter[i].Index.ToString() // 4
, aryDcaRVerCounter[i].Name // 5
, aryDcaRVerCounter[i].Code // 6
, sUpdateTime // 7
, UserId // 8
)