java 「日本語」をURLエンコード
2007/08/07
2007/08/08
java
web
「日本語」をURLエンコード
import java.io.IOException;
import java.net.URLEncoder;
public class Check_url_encoder_coder {
public static void main(String[] args) throws IOException {
String targert = "日本語";
String[] encs = { "sjis", "utf-8", "euc-jp" };
for (String enc : encs) {
p(URLEncoder.encode(targert, enc));
}
}
static void p(String s) {
System.out.println(s);
}
}
import java.net.URLEncoder;
public class Check_url_encoder_coder {
public static void main(String[] args) throws IOException {
String targert = "日本語";
String[] encs = { "sjis", "utf-8", "euc-jp" };
for (String enc : encs) {
p(URLEncoder.encode(targert, enc));
}
}
static void p(String s) {
System.out.println(s);
}
}
結果:
sjis:%93%FA%96%7B%8C%EA
utf-8:%E6%97%A5%E6%9C%AC%E8%AA%9E
euc-jp:%C6%FC%CB%DC%B8%EC
URLEncoderのエンコード指定はエンコードが何の文字列を変換するのかという指定になります。何かややこしいかな。
java内部での文字列を、encで指定したエンコーディングにしたあと、URLエンコードに出力するという感じですかね。
プログラム内部で、文字列をbyte[]のようにあつかっていれば、byte[]がどのエンコーディングにされているか気にする必要があります。えーと、つまり、内部データのエンコーディングを知りつつ、それを対象のエンコーディングに変換する必要がありますが、javaのStringで扱っていて、読めているのであれば、気にする必要がないということですよね。
参考:
データ変換ツール(BASE64, URLエンコード(URLデコード), HEX(16進ダンプ), MD5, SHA-1変換フォーム)
: