我正在尝试从 http://api.freebase.com/api/trans/raw/m/0h47检索数据

正如你在文本中可以看到的,有这样的歌:/ældʒɪəriə/.

当我尝试从页面获取来源时,我会得到像##250这样的音乐文字;等等

到目前为止,我尝试过以下代码:

urlConnection.setRequestProperty("Accept-Charset","UTF-8");
urlConnection.setRequestProperty("Content-Type","application/x-www-form-urlencoded;charset=utf-8");

我究竟做错了什么?

我的整个代码:

URL url = null;
URLConnection urlConn = null;
DataInputStream input = null;
try {
url = new URL("http://api.freebase.com/api/trans/raw/m/0h47");
} catch (MalformedURLException e) {e.printstacktrace();}

try {
    urlConn = url.openConnection(); 
} catch (IOException e) { e.printstacktrace(); }
urlConn.setRequestProperty("Accept-Charset","UTF-8");
urlConn.setRequestProperty("Content-Type","text/plain; charset=utf-8");

urlConn.setDoInput(true);
urlConn.setUseCaches(false);

StringBuffer strBseznam = new StringBuffer();
if (strBseznam.length() > 0)
    strBseznam.deleteCharat(strBseznam.length() - 1);

try {
    input = new DataInputStream(urlConn.getInputStream()); 
} catch (IOException e) { e.printstacktrace(); }
String str = "";
StringBuffer strB = new StringBuffer();
strB.setLength(0);
try {
    while (null != ((str = input.readLine()))) 
    {
        strB.append(str); 
    }
    input.close();
} catch (IOException e) { e.printstacktrace(); }

解决方法

HTML页面是UTF-8,可以使用阿拉伯字符等.但Unicode 127以上的字符仍然被编码为数字实体,如#250;接受编码不会,帮助和加载,因为UTF-8是完全正确的.

你必须自己解码实体.就像是:

String decodeNumericEntities(String s) {
    StringBuffer sb = new StringBuffer();
    Matcher m = Pattern.compile("\\&#(\\d+);").matcher(s);
    while (m.find()) {
        int uc = Integer.parseInt(m.group(1));
        m.appendReplacement(sb,"");
        sb.appendCodepoint(uc);
    }
    m.appendTail(sb);
    return sb.toString();
}

通过这些实体可以源自处理的HTML表单,所以在网络应用程序的编辑方面.

后面的代码:

我已经用(缓冲)阅读器替换了DataInputStream文本. InputStreams读取二进制数据,字节;读者文字,字符串. InputStreamReader具有InputStream和编码的参数,并返回一个Reader.

try {
    BufferedReader input = new BufferedReader(
            new InputStreamReader(urlConn.getInputStream(),"UTF-8")); 
    StringBuilder strB = new StringBuilder();
    String str;
    while (null != (str = input.readLine())) {
        strB.append(str).append("\r\n"); 
    }
    input.close();
} catch (IOException e) {
    e.printstacktrace();
}

Java UTF-8编码未设置为URLConnection的更多相关文章

  1. ios – NSString cString已被弃用.什么是替代品?

    我有另一个新手问题.我写了一段代码,将Nsstring转换为NSMutableData,以模拟一个webService结果.但事实证明,cString已被弃用.你可以帮我更换吗?这是我的代码解决方法>从字符串获取原始字节.>获取UTF8编码中这些字节的长度.>使用dataWithBytes:length:方法创建NSData对象.

  2. 驳狗屎文 "我为什么放弃Go语言"

    开门见山地说,我当初放弃Go语言,就是因为两个“不爽”:第一,对Go语言本身不爽;第二,对Go语言社区里的某些人不爽。两年之后,2011年底,Go语言发布1.0的计划被提上日程,相关的报道又多起来,我再次关注它,重新评估之后决定深入参与Go语言。外加Go语言社区里的某些人,其中也包括Google公司负责开发Go语言的某些人,其态度、言行,让我极度厌恶,促使我决绝地离弃Go语言。第1节:我为什么对Go语言不爽?

  3. [Swift]NSString、NSData、Base64互转

    ####Nsstring、NSData互转########Base64互转####

  4. android – java.lang.RuntimeException:无法在未调用Looper.prepare()的线程内创建处理程序

    嗨,我的代码有问题.我的代码是和这样的错误:如果活动将数据保存到服务器我命令进度条可以运行,但如果没有这不起作用..我应该怎么做才能解决这个问题?解决方法由于您正在使用活动上下文的线程,您可能会收到错误.您应该使用AsyncTask而不是普通线程.在AsyncTask中,有一个onPreExecute()和onPostExecute()方法,它们在主线程上执行,并且有一个方法doInBackground()将在后台执行,以便您可以轻松实现长期进程.你可以参考thisexample

  5. 使用phonegap查找联系人的实现方法

    下面小编就为大家带来一篇使用phonegap查找联系人的实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. PHP数组编码gbk与utf8互相转换的两种方法

    这篇文章给大家分享了两种转换的方法,都可以实现PHP数组的编码进行相互转换。大家可以参考自己的实际情况进行选择哪一种方法,下面来一起看看吧。

  7. 用PHP将Unicode 转化为UTF-8的实现方法(推荐)

    下面小编就为大家带来一篇用PHP将Unicode 转化为UTF-8的实现方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. 使用phonegap获取设备的一些信息方法

    下面小编就为大家带来一篇使用phonegap获取设备的一些信息方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. PHP实现UTF8二进制及明文字符串的转化功能示例

    这篇文章主要介绍了PHP实现UTF8二进制及明文字符串的转化功能,涉及php进制及编码转换相关操作技巧,需要的朋友可以参考下

  10. SQL server不支持utf8 php却用utf8的矛盾问题解决方法

    这篇文章主要介绍了SQL server不支持utf8 php却用utf8的矛盾问题解决方法,需要的朋友可以参考下

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部