Subscribe to RSS Feed ログイン

オーガニック・ウェルス

Wednesday
2018年2月21日

JavaでHTMLエンコードされた文字列を復元する

public static String htmlspecialchars_decode(String encoded_str)
	throws UnsupportedEncodingException {
	
	String retStr = "";
	encoded_str = encoded_str.replaceAll("\\&amp\\;", "&");
	encoded_str = encoded_str.replaceAll("\\&quot\\;", "\"");
	encoded_str = encoded_str.replaceAll("\\&lt\\;", "<");
	encoded_str = encoded_str.replaceAll("\\&gt\\;", ">");
	encoded_str = encoded_str.replaceAll("\\&nbsp\\;", " ");
	for(int i = 0;i < encoded_str.length();i++) {
		if(encoded_str.charAt(i) != '&') {
			retStr += encoded_str.charAt(i);
			continue;
		}
		int index = encoded_str.indexOf(";", i);
		if(index < 0) {
			continue;
		}
		String str2 = encoded_str.substring(i, index);
		str2 = str2.replaceAll("\\&", "");
		str2 = str2.replaceAll("\\#", "");
		int utf16_code = Integer.parseInt(str2);
		byte[] char_set = new byte[2];
		char_set[0] = (byte) (utf16_code >> 8);
		char_set[1] = (byte) (utf16_code & 255);
		String new_str = new String(char_set, "UTF-16");
		retStr += new_str;
		i = index;
	}
	return retStr;
}

コメント(0)続きを読む