java 处理特殊字符_如何从Java字符串中移除非法的特殊字符

我们通常使用的编码方式,例如UTF-8,是可以编码大部分特殊字符的,但在有些情况下,一些特殊字符是会造成程序异常的。

比如说,在CSV、XML、JSON等这些有严格格式要求的数据格式中,特殊字符就需要特殊处理。

下面就介绍几个处理这些特殊字符的几个方法。

URI

统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串,URI一般由三部分组成:主机名、标志符、相对URI。

URL(统一资源定位符)是Uniform Resource Locator的缩写,是URI的一个子集。

对于URI中的特殊字符,一般会转为US-ASCII编码。

例如浏览器地址栏输入如下链接:http://test.com/【u r i 中 文】/, 一般会转为:http://test.com/%E3%80%90u%20r%20i%20%E4%B8%AD%20%E6%96%87%E3%80%91/

那么如何实现把【u r i 中 文】转为%E3%80%90u%20r%20i%20%E4%B8%AD%20%E6%96%87%E3%80%91呢?

http://java.net包下的URI就有一个toASCIIString()可以使用。

下面这个工具方法就能实现上面的转码动作。

/***

* 将Hppt请求的URI的 Path内容部分(不包含protocol和host以及/) 转码为 ASCII String*

*
*

* exampe:
* URIUtils.pathContentToASCIIString("g h 【 中文 】");
* 返回:
* g%20h%20%E3%80%90%20%E4%B8%AD%E6%96%87%20%E3%80%91
*

** @param path* @return* @throws URISyntaxException*/

public static String pathContentToASCIIString(String uriPath) throws URISyntaxException {

//构造一个URI对象,其中host是随机字符串 String scheme = "https";

String host = "vadvdavddfmadlovbnsdaye.adfmadddcsefgrfcvg.ppamsasaaaff";

String path = "/" + uriPath;

URI uri = new URI(scheme, host, path, null);

//需要替换掉的URI头 String regex = scheme + "://" + host + "/";

//将URI转为 US-ASCII string,然后替换掉头部返回 return uri.toASCIIString().replaceFirst(regex, "");

}

CSV XML JOSN HTML JAVA

对于将字符串转为CSV、XML、JOSN、HTML、JAVA等格式合法的字符,可以使用Apache Commons Text或者Googel Guava的工具类实现。

首先你需要配置你的Maven坐标,添加Commons Text的依赖。

org.apache.commons

commons-text

1.6

然后就可以使用StringEscapeUtils.escapeHtml4 将

转为HTML中的合法字符</div>。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值