사용할 때 다음 경고가 나타납니다 java.net.URLEncoder.encode
.
경고 : [deprecation] encode (java.lang.String) java.net.URLEncoder에서 더 이상 사용되지 않습니다.
대신 무엇을 사용해야합니까?
사용할 때 다음 경고가 나타납니다 java.net.URLEncoder.encode
.
경고 : [deprecation] encode (java.lang.String) java.net.URLEncoder에서 더 이상 사용되지 않습니다.
대신 무엇을 사용해야합니까?
답변:
URLEncoder 에서 다른 encode
방법을 사용 하십시오 .
URLEncoder.encode(String, String)
첫 번째 매개 변수는 인코딩 할 텍스트입니다. 두 번째는 사용할 문자 인코딩의 이름입니다 (예 :) UTF-8
. 예를 들면 다음과 같습니다.
System.out.println(
URLEncoder.encode(
"urlParameterString",
java.nio.charset.StandardCharsets.UTF_8.toString()
)
);
StandardCharsets.US_ASCII
, StandardCharsets.UTF_8
불행하게도, 등 URLEncoder.encode
a를하지 않습니다 Charset
... (그러나 다른 많은 moethods가 할).
URLEncoder.encode(<urlStringToBeEncoded>, StandardCharsets.UTF_8.name())
. 문자 인코딩 체계로 정적 상수 UTF_8
의 toString()
메소드를 사용하면 "java.nio.charset.CharsetICU [UTF-8]" java.nio.charset.IllegalCharsetNameException: java.nio.charset.CharsetICU[UTF-8]
이 toString()
리턴됩니다. 원하는 "UTF-8"을 얻으려면 name()
대신 해당 방법을 사용하십시오.
URLEncoder 클래스를 사용하십시오 .
URLEncoder.encode(String s, String enc)
어디 :
s- 번역 할 문자열
enc- 지원되는 문자 인코딩 의 이름 .
표준 문자셋 :
US-ASCII 7 비트 ASCII, 일명 ISO646-US, 일명 유니 코드 문자 집합의 기본 라틴 블록 ISO-8859-1 ISO 라틴 알파벳 1, 일명 ISO-LATIN-1
UTF-8 8 비트 UCS 변환 형식
UTF-16BE 16 비트 UCS 변환 형식, 빅 엔디안 바이트 순서
UTF-16LE 16 비트 UCS 변환 형식, 리틀 엔디안 바이트 순서
UTF-16 16 비트 UCS 변환 형식, 선택적 바이트 순서 표시로 식별되는 바이트 순서
예:
import java.net.URLEncoder;
String stringEncoded = URLEncoder.encode(
"This text must be encoded! aeiou áéíóú ñ, peace!", "UTF-8");
첫 번째 매개 변수는 인코딩 할 문자열입니다. 두 번째는 사용할 문자 인코딩의 이름입니다 (예 : UTF-8).
다른 응답에 대한 추가 참조로 "UTF-8" 을 사용하는 대신 다음을 사용할 수 있습니다.
HTTP.UTF_8
이는 org.apache.http.protocol 라이브러리의 일부로 Java 4부터 포함되어 있으며 Android API 1부터 포함되어 있습니다.
org.apache.http.protocol.HTTP
클래스입니다.
사용법은 org.apache.commons.httpclient.URI
엄격히 문제가 아닙니다. 문제는 잘못된 생성자를 타겟팅하여 감가 상각 한다는 것 입니다 .
그냥 사용
new URI( [string] );
실제로 감가 상각 된 것으로 표시합니다. 최소한 하나의 추가 인수 (첫 번째, 아래)와 이상적으로는 두 가지를 제공해야합니다.
escaped
: URI 문자 시퀀스가 이스케이프 된 형식 인 경우 true입니다. 그렇지 않으면 거짓.charset
: 필요한 경우 이스케이프 인코딩을 수행 할 문자 세트 문자열이것은 해당 클래스 내에서 감가 상각되지 않은 생성자를 대상으로합니다. 따라서 이상적인 사용법은 다음과 같습니다.
new URI( [string], true, StandardCharsets.UTF_8.toString() );
게임에서 약간 미쳤지 만 (11 년이 지난 머리카락 -egad! ), 특히 맨 끝에있는 메소드가 여전히 와 같은 URI를 기대하는 경우 다른 사람에게 도움이되기를 바랍니다 org.apache.commons.httpclient.setURI()
.