gpt4 book ai didi

java - Java 和 MYSQL 中的垂直制表符

转载 作者:可可西里 更新时间:2023-11-01 08:57:56 26 4
gpt4 key购买 nike

我正在使用 Java 将数据插入到 MYSQL 表中,一列要求数据在其中具有垂直制表符 ( VT)。

我用 php 代码做了同样的事情,只需写“\v”就非常简单,表格中的数据如下所示: enter image description here

问题开始于 java 不允许“\v”,所以我尝试按以下方式对字符进行编码:

byte[] utf8bytes = { (byte)0xE2, (byte)0x90, (byte)0x8B };
Charset utf8charset = Charset.forName("UTF-8");
String string = new String ( utf8bytes, utf8charset );
....
MysqlDataSource DATA_SOURCE = new MysqlDataSource();
PreparedStatement statement = connection.prepareStatement(sql_statement, Statement.RETURN_GENERATED_KEYS);
....
statement.setString(index++, (String) string);
.....

虽然这有效,但表中的最终数据本身会产生“?”。 enter image description here

我还尝试为 MysqlDataSource 设置字符集,但在这种情况下它不接受编码字符并且语句失败。

try {
DATA_SOURCE.setCharacterEncoding("UTF-8");
} catch (SQLException ex) {
Logger.getLogger(MyClass.class.getName()).log(Level.SEVERE, null, ex);
}

com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect string value: '\xE2\xAD\xBFdat...

我希望你能帮助我找到在表格中插入垂直制表符的正确方法。

最佳答案

我找到了解决方法。

我查看了数据库表中字节级别的单个Vertical Tab现有php方案插入的数据:

SELECT hex(example_column) FROM `example_table` WHERE 1

结果:VT from \v

我们可以使用上面发布的示例代码轻松重现:

byte[] utf8bytes = { (byte)0x0B};
String string = new String ( utf8bytes );

关于java - Java 和 MYSQL 中的垂直制表符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56429191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com