Java和MYSQL中的垂直选项卡

Java和MYSQL中的垂直选项卡,java,mysql,unicode,Java,Mysql,Unicode,我正在使用Java将数据插入MYSQL表中,其中一列需要数据具有垂直制表符() 我对php代码也做了同样的操作,只需写“\v”就很简单了,数据如下表所示: 问题开始于java不允许“\v”,因此我尝试用以下方式对字符进行编码: byte[] utf8bytes = { (byte)0xE2, (byte)0x90, (byte)0x8B }; Charset utf8charset = Charset.forName("UTF-8"); String string = new String (

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

我对php代码也做了同样的操作,只需写“\v”就很简单了,数据如下表所示:

问题开始于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);
.....
虽然这样做有效,但表中的最终数据本身会产生一个“?”。

我还尝试为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...
我希望您能帮助我找到在表格中插入垂直选项卡的正确方法。

我找到了一个解决方法

我检查了数据库表中字节级单个垂直选项卡的现有php解决方案插入的数据:

SELECT hex(example_column) FROM `example_table` WHERE 1
结果:

我们可以使用我在上面发布的示例代码轻松复制:

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

E2808B是“零宽度空间”。
源于始终未使用utf8。