Java用sun.misc.BASE64Decoder获取域名,域用户名的字符串,但字符串异常

目的:获取域名,域用户名的字符串,然后组成sql,查询数据库。
问题:现在用sun.misc.BASE64Decoder获取域名,域字符串成功了,但字符串有问题,见下图

上面的sql是查询数据库的,其中wyman_chen和UBOTINC是用sun.misc.BASE64Decoder获取的,但是好像多了空格之类的东西,是因为编码的问题吗?怎么解决?这样的字符串跟数据库的匹配不上。已经尝试过去空格函数,确认没有空格。
详细代码如下:

rs= sqlbeana.executeQuery(sql);
因为wyman_chen和UBOTINC多了空格之类的东西,后来用去空格函数还是不行,是编码问题吗,现在匹配数据库查不出来,但数据库是有数据的。目前已经确定是获取的wyman_chen和UBOTINC有问题。怎么解决?万分感谢
最新回答
闲懒诗人

2024-07-09 00:50:03

很有可能你得到的是“全角”字符串,现在很多服务器为了防止垃圾邮件而把人名邮箱都处理过了,很多年前(我在2001年就发现了) whois.com 就已经这么做了,而我们中国人的 cnnic.net 就看起来落伍了(到现在都没有做到防垃圾功能),比如邮箱换成全角或直接换成用一个图片显示整个邮箱,也有用多个图片分别拼出邮箱中的每个字母来,反正这个符号本身不是字符而是更原始的一个“符号”。当你得到一个全角字符时显示出来的效果就是“看起来很宽”,因为在程序看来它不是 ASCII 字母而是一个相当于汉字的符号。不过我们可以为全角字母准备一个字典来翻译一下。

从人的概念或业务来讲,很多数据本身是给“人” “看”的,这个信息被处理的方式是仅限于通过“眼睛”,因此我们应该杜绝程序能自动处理它们,就好像我们的登录验证码一样,这种程序设计是很合理的办法,既能防止垃圾邮件,又能防止不法分子批量收集数据做其它的难以预料的事情。
追问
试过了将全角转换成半角,还是不行,不过谢谢你
追答
Try debug the data itself: 
System.out.println(“Unicode code point :“ + inputString.codePointAt(0));

we can look up unicode character map for this code point to find out what is the character in fact.