Java で文字列をエンコードする方法を作成しようとしてきましたが、大きな障害にぶつかりました。
私の問題は、\n \u \ などのエスケープを無視できないことです。(それらもエンコードされます。)
私はこの 1 つの問題に 3 時間を費やしました。これが私のコードです。
public Object encode() throws EncodingException {
String encoded = "";
if (!isEncoded) {
int i = 0;
char[] alpha = (this.value.toString().toCharArray());
while (!(i >= alpha.length)) {
i++;
try {
if(!(alpha[i - 1] == '\\')){
encoded = encoded
+ SerializeEncoding.encoding.encodings.get(
new String(new char[] { alpha[i - 1] }))
.toString();
}else{
encoded = encoded
+ alpha[i - 1] + alpha[i];
i++;
}
} catch (NullPointerException e) {
encoded = encoded
+ new String(new char[] { alpha[i - 1] })
.toString();
}
}
encodedValue = (Object) encoded;
isEncoded = true;
log = encodedValue;
return (Object) encodedValue;
} else {
throw new EncodingException("Already encoded");
}
}
カーリップさんありがとう
PS。私が何かを逃した場合は教えてください。