MySQL保存超字段长度信息时如何正确截取

news/2025/2/27 7:17:56/

在Java中,为确保错误信息errMsg正确截取并适配MySQL的varchar(1024)字段(UTF-8编码),需考虑字符数限制及Unicode完整性。以下是实现方法:

解决方案

使用代码点(Code Point)截取,避免破坏Unicode字符(如代理对):

public class StringTruncateUtil {public static String truncateToMaxChars(String input, int maxChars) {if (input == null) {return null;}return input.codePoints().limit(maxChars).collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append).toString();}
}// 使用示例
String errMsg = "..."; // 原始错误信息
String truncatedErrMsg = StringTruncateUtil.truncateToMaxChars(errMsg, 1024);
// 将truncatedErrMsg存入数据库

说明

  1. 字符数限制varchar(1024)以字符为单位,因此截取前1024个字符。
  2. 处理Unicode:使用codePoints()方法将字符串转换为Unicode代码点流,确保截断时不会破坏代理对(如表情符号)。
  3. 高效安全:通过流式处理限制代码点数量,确保结果字符串的Unicode有效性。

此方法适用于所有Unicode字符,确保存储到数据库的字符串完整且符合长度限制。


http://www.ppmy.cn/news/1575204.html

相关文章

第16届蓝桥杯模拟赛3 python组个人题解

第16届蓝桥杯模拟赛3 python组 思路和答案不保证正确 1.填空 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问, 2024 的最大的质因数是多少? 因为是填空题,所以直接枚举2023~2 &am…

java23种设计模式-组合模式

组合模式(Composite Pattern)学习笔记 🌟 定义 组合模式属于结构型设计模式,用于将对象组合成树形结构以表示"部分-整体"层次结构。它使得用户对单个对象和组合对象的使用具有一致性。 🎯 适用场景 需要表…

从0-1搭建mac环境最新版

从0-1搭建mac环境 先查看自己的芯片信息 bash uname -mbash-3.2$ uname -m arm64这里是自己的型号安装brew xcode-select --install xcode-select -p /bin/zsh -c “$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)” source /Users/lanren/.…

常见软件测试工具的解释

以下是一些常见软件测试工具的解释: 功能测试工具 Selenium:用于Web应用程序测试的开源工具,支持多种浏览器和编程语言,如Java、Python等。它通过操作浏览器来模拟用户行为,如点击按钮、输入文本、验证页面元素等&…

单片机总结【GPIO/TIM/IIC/SPI/UART】

一、GPIO 1、概念 通用输入输出口;开发者可以根据自己的需求将其配置为输入或输出模式,以实现与外部设备进行数据交互、控制外部设备等功能。简单来说,GPIO 就像是计算机或微控制器与外部世界沟通的 “桥梁”。 2、工作模式 工作模式性质特…

【Python LeetCode】面试经典 150 题

数组 / 字符串快慢指针(双指针)总结88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II Boyer-Moore 投票算法169. 多数元素扩展:寻找 n/3 多数元素 翻转法189. 轮转数组 贪心121. 买卖股票的最佳时机…

IO 和NIO有什么区别?

在 Java 中,IO(Input/Output)即传统的标准输入输出,NIO(New Input/Output)是 Java 1.4 引入的新的 IO 库,它们之间存在多方面的区别,详细总结如下: 数据读取方式&#x…

【多模态处理篇三】【DeepSeek语音合成:TTS音色克隆技术揭秘】

最近帮某明星工作室做AI语音助手时遇到魔幻需求——要求用5秒的咳嗽声克隆出完整音色!传统TTS系统直接翻车,生成的语音像得了重感冒的电音怪物。直到祭出DeepSeek的TTS音色克隆黑科技,才让AI语音从"机器朗读"进化到"声临其境"。今天我们就来扒开这个声音…