作者XDXQQ (杰洛尼莫)
看板java
标题[问题] String分割问题
时间Tue Apr 25 08:14:04 2017
大家好
可能是我表达的不好,非常抱歉
我是想将字串传入资料库
可是这个栏位只接受20byte
但是字串有中文英文
有可能会发生当第19byte是英文
第20byte是中文,这时中文就会被切开造成错误
所以想请问大家有没有办法判断这种情形时,就将第20byte的中文自动存入下一笔资料中
感谢大家的回答
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.136.187.69
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1493079247.A.55D.html
1F:→ ssccg: 为什麽要把资料库栏位开不够大? 没办法想像资料太长时是切 04/25 09:33
2F:→ ssccg: 到下一个row的use case,另外资料库的编码跟Java又是另一回 04/25 09:34
3F:→ ssccg: 事了,如果是UTF-8中文是3 byte 04/25 09:36
4F:→ XDXQQ: 因为无法开大,所以才会想在java层解决@@ 04/25 10:03
5F:→ swpoker: oracle db有分位元跟字元两种,不知道你是用哪种? 04/25 10:47
6F:→ XDXQQ: 我是用mssql,不过基本上sql那块是无法修改的 04/25 10:48
7F:→ ssccg: 切成很多row也不能说是在java层解决吧,在资料库中原本属於 04/25 11:27
8F:→ ssccg: 同一笔资料的就直接拆成多个row了,你其他栏位是打算怎麽处 04/25 11:28
9F:→ ssccg: 理? key可以用重复的吗? 还是同一笔变成多个不同key的row? 04/25 11:29
10F:→ ssccg: 个人看法是: 资料库绝对不能动的话,就是说原结构定义是绝 04/25 11:33
11F:→ ssccg: 对的,那栏位不可能出现超过长度的字串,你的资料根本不该 04/25 11:34
12F:→ ssccg: 存到该table... 04/25 11:36
13F:→ XDXQQ: 其他栏位是造原本的就好 04/25 12:10
14F:→ XDXQQ: 没有pk问题 04/25 12:10
15F:→ ssccg: 反正你要这样做就做吧,记得要用资料库的编码来算长度就是 04/25 13:51
16F:→ XDXQQ: 感谢回答~ 04/25 18:22
17F:→ Lordaeron: 答案不是给过了? 又问一次是? 04/25 20:51
18F:推 Jichang: 不用那麽麻烦 在开一个表格 原本那格改填FK 04/27 10:01
19F:推 pttnews: DATA TYPE : NVARCHAR 04/28 16:33
20F:→ jej: 每个字getByte 长度超过20的那个字另写 05/03 19:58
21F:→ eieio: 切开来会怎样吗?读的时候接回去不就好了吗? 05/06 14:58