相关疑难解决方法(0)

Java - 从混合了 UTF-8 和非 UTF-8 字符的字符串中精确计算 60 个字符

我有一个字符串,我想将其保存在仅支持 UTF8 字符的数据库中。如果字符串大小 > 60 个字符,我想截断它并只存储前 60 个字符。使用中的 Oracle 数据库仅支持 UTF-8 字符。

String.substring(0,59)在 Java 中使用返回 60 个字符,但是当我将它保存在数据库中时,它被拒绝,因为数据库声称该字符串 > 60 个字符。

  • 有没有办法找出特定字符串是否包含非 UTF8 字符。我发现的一种选择是:

    try {

        bytes = returnString.getBytes("UTF-8");
    
    
    } catch (UnsupportedEncodingException e) {
        // Do something
    
    Run Code Online (Sandbox Code Playgroud)

    }

  • 有没有办法可以将它截断为正好 x 个字符(数据丢失不是问题),并确保在数据库中保存时只保存 x 个字符。例如,如果我有字符串§8§8§8§8§8§8§8,我说截断并只保存 5 个字符,它应该只保存§8§

java string oracle encoding character-encoding

4
推荐指数
1
解决办法
1034
查看次数

标签 统计

character-encoding ×1

encoding ×1

java ×1

oracle ×1

string ×1