public String escapeObfuscation() {
		String escapeObfuscatedCode = null;
		
		/*
		 * エスケープ処理は文字ごとに行う必要があるため、1文字ずつに分ける。
		 * 後に正規表現により比較作業を行うため、String型の配列に格納する。
		 */
		char ch[] = code.toCharArray();
		String[] choppedCode = new String[ch.length];
		for (int i = 0; i < choppedCode.length; i++) {
			choppedCode[i] = String.valueOf(ch[i]);
		}
		
		/*
		 * エスケープ処理の文字が%以外の時は最後にReplace処理を行う必要があるため
		 * %以外のときはReplaceメソッドの準備をする。
		 */
		StringBuilder stringBuilder = new StringBuilder();
		if (keyCharacter.matches("%")) {
			stringBuilder.append("eval(unscape('");
		} else {
			stringBuilder.append("eval(unscape(('");
		}
		
		/*
		 * エスケープコードへの変換を行う。
		 * 一部文字はうまく変換できない(09→9)ため、別途処理が必要となる。
		 * 具体的には、変換後の文字数が2文字以下の場合は、頭に0をつける。
		 */
		String s = null;
		for (int i = 1; i < ch.length; i++) {
			s = Integer.toHexString(ch[i]);
			if (s.length() < 2) {
				stringBuilder.append(keyCharacter + "0" + Integer.toHexString(ch[i])); 
			} else {
				stringBuilder.append(keyCharacter + Integer.toHexString(ch[i]));
			}
			
			/*
			 * コードの終端を整える。
			 * エスケープ文字が%以外の場合は、Replaceメソッドを挿入する。
			 * また、エスケープ文字にエスケープ処理が必要な場合は、処理を行う。
			 */
			if (i == (code.length() - 1)) {
				if (keyCharacter.matches("%")) {
					stringBuilder.append("'));");
				} else {
					if (isNeedsEscape(keyCharacter)) {
						stringBuilder.append("').replace(/\\" + keyCharacter + "/g, '%')));");
					} else {
						stringBuilder.append("').replace(/" + keyCharacter + "/g, '%')));");
					}
				}
			}
		}
		escapeObfuscatedCode = stringBuilder.toString();
		
		return escapeObfuscatedCode;
	}