Joe*_*app 3 java url uri utf multibyte
无法在URL中设置包含中文字符的URL连接.它适用于拉丁字符:
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() ;
Run Code Online (Sandbox Code Playgroud)
getInputStream()调用导致:
java.lang.IllegalArgumentException: Invalid uri 'http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=???????????': Invalid query
Run Code Online (Sandbox Code Playgroud)
问题是由URI.toURL()不对非ASCII字符进行百分比编码的事实引起的.请改用以下内容:
URL url = new URL(uri.toASCIIString());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5725 次 |
| 最近记录: |