当前位置:  编程技术>移动开发
本页文章导读:
    ▪Http请求回来结果报UnsupportedCharsetException        Http请求返回结果报UnsupportedCharsetException最近在Http请求时,出现了Caused by: java.nio.charset.UnsupportedCharsetException: The unsupported charset name is "GB18030". 不支持GB18030   会出现这种问题,是由于我采用.........
    ▪ 采摘音频和摄像头视频并实时H264编码及AAC编码        采集音频和摄像头视频并实时H264编码及AAC编码   采集音视频实时264编码和aac编码              经常有人做视频的监控或者流媒体的实时传输,其中就会有包括音频以及视频的采集、编码、.........
    ▪ 在BSP的.bat文件上设置全局变量的方法       在BSP的.bat文件下设置全局变量的方法(1)   示例。BSP的.bat文件      set BSP_SMDK2443=1      set BSP_SMDK2450=2      set BSP_TYPE=%BSP_SMDK2450%     if /i "%BSP_IMAGE_TYPE%"=="1" set IMGMULTIBIN=1 else set IMGMU.........

[1]Http请求回来结果报UnsupportedCharsetException
    来源: 互联网  发布时间: 2014-02-18
Http请求返回结果报UnsupportedCharsetException

最近在Http请求时,出现了Caused by: java.nio.charset.UnsupportedCharsetException: The unsupported charset name is "GB18030".

不支持GB18030

 

会出现这种问题,是由于我采用了EntityUtils.toString方法来解析回传数据。那么在这里会涉及到charset。

那么,先来看看如何取得response中的charset

         HttpEntity entity = httpResponse.getEntity();
	Header header = entity.getContentType();
	if (header != null) {
		HeaderElement[] elements = header.getElements();
		if (elements.length > 0) {
			String name = elements[0].getName();
			String charset = null;
			NameValuePair param = elements[0]
				.getParameterByName("charset");
			if (param != null) {
				charset = param.getValue();
			}

			Charset c = (charset != null && charset.length() > 0) ? Charset
				.forName(charset) : null;
			System.out.println(c.name());
		}
	}


再来看看charset说明中,其所支持的:The following charsets should be supported by any java platform: US-ASCII, ISO-8859-1, UTF-8, utf-8BE, utf-8LE, utf-8.

所以,如果返回来的是GB18030,自然就不支持了

 

解决的方法:

用下面这个方法代替EntityUtils.toString

	public Object handleEntity(HttpEntity entity, String charset)
			throws IOException {
		if (entity == null)
			return null;

		ByteArrayOutputStream outStream = new ByteArrayOutputStream();
		byte[] buffer = new byte[1024];

		long count = entity.getContentLength();
		long curCount = 0;
		int len = -1;
		InputStream is = entity.getContent();
		while ((len = is.read(buffer)) != -1) {
			outStream.write(buffer, 0, len);
			curCount += len;
		}

		byte[] data = outStream.toByteArray();
		outStream.close();
		is.close();
		return new String(data, charset);
	}


    
[2] 采摘音频和摄像头视频并实时H264编码及AAC编码
    来源: 互联网  发布时间: 2014-02-18
采集音频和摄像头视频并实时H264编码及AAC编码
  采集音视频实时264编码和aac编码              经常有人做视频的监控或者流媒体的实时传输,其中就会有包括音频以及视频的采集、编码、传输等过程,对于实时性的应用就需要将采集得到的每一帧进行实时的编码输出。         这里我使用了directshow来采集音频和视频,当然使用directshow也有一定得问题就是它不能跨平台,对于跨平台的可以使用opencv采集视频,openal采集音频;对于编码部分,使用264编码器进行视频编码,faac编码器进行音频编码,最后将编码的文件保存在本地文件夹。 现手上有完整的工程代码,有需要的朋友可以联系qq:819853294,一起交流

    
[3] 在BSP的.bat文件上设置全局变量的方法
    来源: 互联网  发布时间: 2014-02-18
在BSP的.bat文件下设置全局变量的方法

(1)   示例。BSP的.bat文件

     set BSP_SMDK2443=1

     set BSP_SMDK2450=2

     set BSP_TYPE=%BSP_SMDK2450%


    if /i "%BSP_IMAGE_TYPE%"=="1" set IMGMULTIBIN=1 else set IMGMULTIBIN=

    if /i not "%BSP_NOSDK%"=="1" call %_TARGETPLATROOT%\src\sdk\sdk.bat

(2)   修改。

如上面的示例做相应的产品名称定义。如果需要在BSP的c,c++等files里面能直接引用上面的宏,需要在BSP的根目录下面的sources.cmn文件进行转换一下,成为c可以调用的格式。如下所示,每使用一个宏,需要定义两行:

ADEFINES=$(ADEFINES) –pd “BSP_SMDK2443 SETA $(BSP_SMDK2443)”

CDEFINES=$(CDEFINES) –DBSP_SMDK2443=$(BSP_SMDK2443)

 

ADEFINES=$(ADEFINES) –pd “BSP_SMDK2450 SETA $(BSP_SMDK2450)”

CDEFINES=$(CDEFINES) –DBSP_SMDK2450=$(BSP_SMDK2450)

 

ADEFINES=$(ADEFINES) –pd “BSP_TYPE SETA $(BSP_ TYPE)”

CDEFINES=$(CDEFINES) –DBSP_ TYPE=$(BSP_ TYPE)

 

(3)   引用。

#if (BSP_TYPE==BSP_SMDK2443)

#elif(BSP_TYPE==BSP_SMDK2450)

#endif

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android开发之登录验证实例教程 iis7站长之家
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3