今天遇到一个问题,我使用struts上传文件 在读txt文件时候有4种编码格式ANSI、UTF-8、Unicode和Unicode big endian,但是我读数据想入到数据库中,出现乱码,数据库是UTF-8格式,请那位高手指教下,当我以4种不同的方式,写到数据库中时,怎么样转码(前提是文本都是中文)
还有个问题是,我文本选择UTF-8格式读到数据库中时(UTF-8),为什么读文本文件第一行第一个汉字入到数据库中时,怎么入到数据库第一个汉字前面有个问号,怎么解决这问题啊
谢谢,那位高手帮吗解决下
还有个问题是,我文本选择UTF-8格式读到数据库中时(UTF-8),为什么读文本文件第一行第一个汉字入到数据库中时,怎么入到数据库第一个汉字前面有个问号,怎么解决这问题啊
谢谢,那位高手帮吗解决下
Unicode big endian的txt前两个字节是fe ff
UTF-8的txt前三个字节是ef bb bf
ANSI的txt是直接开始内容的。
因为你的txt是UTF-8的,问号应该是由于前缀的ef bb bf引起的。
你可以判断txt的前几个字节来知道txt用的是那种编码。
让会员指定上传文件的编码,然后用String(byte[] bytes, Charset charset)转换上传过来的数据添加到数据库中。
这样转换起来比较容易。