URL에서 중국어 문자로 URL 연결을 설정하는 데 문제가 있습니다. 그것은 라틴 문자와 함께 작동 :한자 (URI)가 잘못된 URI
String xstr = "维也纳恩斯特哈佩尔球场" ;
URI uri = new URI("http","ajax.googleapis.com","/ajax/services/language/detect","v=1.0&q="+xstr,null);
URL url = uri.toURL();
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream() ;
는 getInputStream() 호출 결과 :
java.lang.IllegalArgumentException: Invalid uri 'http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=???????????': Invalid query
이상한를, 내가했던 작은 JUnit 테스트 케이스와 예외를 얻지 못했습니다. OpenJDK 64 비트 서버 VM (빌드 19.0-b09, 혼합 모드)'Java 버전 1.6.0_20 "OpenJDK 런타임 환경 (IcedTea6 1.9.4) (6b20-1.9.4-0ubuntu1)을 실행 중입니다. .java 파일 인코딩은 UTF-8입니까? – hleinone
확실히 - 문자가 해당 단계가 통과되는 한 예상대로 데이터 저장소로 이동합니다. 인터넷 검색에서 오라클 페이지 http://download.oracle.com/javase/1.4.2/docs/api/java/net/URI.html이 허용되는 것으로 나타났습니다. "...에없는 유니 코드 문자 US-ASCII 문자 집합은 Character.isISOControl 메서드에 따라 제어 문자가 아니며 Character.isSpaceChar 메서드에 따라 공백 문자가 아닙니다 (US-ASCII로 제한되는 RFC 2396의 편차). " 어쩌면 구현에 달려 있을까요? 내 것은 안드로이드 다. –