String str="排列3第09006期终端销售情况2009-1-6.txt";
playname=StringUtils.substring(str,0,StringUtils.indexOf(str, "第")).trim(); // 取到的值是排列3
System.out.println(playname);//输出的结果是?排列3这是为什么?为什么排列3前有一个隐藏的字符不可显示的,字符串是使用java.io.InputStreamReader is = new java.io.InputStreamReader(in,"utf-8");读进内存的。文件的编码方式是utf-8.
playname=StringUtils.substring(str,0,StringUtils.indexOf(str, "第")).trim(); // 取到的值是排列3
System.out.println(playname);//输出的结果是?排列3这是为什么?为什么排列3前有一个隐藏的字符不可显示的,字符串是使用java.io.InputStreamReader is = new java.io.InputStreamReader(in,"utf-8");读进内存的。文件的编码方式是utf-8.
解决方案 »
- java 能截整个网页吗?
- 如何获得当前月份的开始日期和截止日期,并且获得上个月的开始时间和截止日期呢
- 无效的游标状态,是怎么回事?
- 如何用J2SE開發IDE?
- 关于I/O读取double型的问题(小弟新手,虚心请教,在线等)
- 如何对Hashtable中的key关键字进行排序
- 一个关于java Socket的问题
- java如何实现任意编码文件转UTF8
- liujuntao(为了找你,可以天南地北走了遍) 进来领分
- 请看我的代码,是一个用tdsDriver连接SQL Server的程序,为何出现:Error reading request connection reset
- 不同系统间中文乱码问题
- jigloo编辑窗体,怎么设置最上面的Title,怎么去掉 最大化按钮?
int(ch)=65279,65279是个什么样的字符呢
用org.apache.commons.lang.StringUtils包,显示的是正确的○( ̄︿ ̄)○
如果字符串不是String str =而是读进来的,
就先
str = URLDecoder.decode(str, "UTF-8");
解码一下看呢?
65279的16形式似乎是一个bom.
比如editplus。
原因就在于某些编辑器会往utf8文件中添加utf8标记(editplus称其为签名),它会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM),它的表示的是 Unicode 标记(BOM)。
因此要解决这个问题的关键就是把这个标记选项去掉。
首先用editplus打开这个文件,从Doucument菜单中选择Permanet Settings,有三个分类,分别是General,File, Tools.点击File,右边会有一项是 UTF-8 signature: 选择 always remove signature. 点击OK中文版本的 editplus 下操作的菜单结构如下: 文档->参数设置->文件->UTF-8签名->总是移除签名->确定