J2ME中文问题的解决方案

WRF后处理总结:wrf-python与NCL在WRF后处理中的基本应用——变量提取、计算与可视化 判断需要提取的变量与诊断量确定后,使用getvar函数进行提取。可使用ncdump-h命令查看wrfout中的变量,wrf中的诊断量分类也可从官方文档处查阅。判断绘图类型所需的可视化绘图类型,决定了你在WRF后处理中的计算步骤。1D点线图:ll_to_xy interpline2D填色图:interplevel3D剖面图:vinterp vertcross绘图、美化色标、XY轴、标签的设置等等。 阅读详情
Java的中文问题通常会困扰很多开发者,你可能在开发Web应用程序的时候遇到中文参数的传递问题,最后你可能选择使用Filter把Request的编码方式设置为GBK来解决。在J2ME的开发中我们同样会遇到中文问题,比如在RMS中存储中文、网络传输中传输中文、从文件中读取中文等问题。

    我们在解决中文问题的时候,用到的最多的一个词就是UTF-8。我们知道ASCII码是单字节编码方式,可以解决英文的问题,但是中文的字库非常庞大,用ASSII码就难以解决了。Java语言是支持UNICODE编码方式的,UNICODE是双字节的编码方式可以支持中文字库,但是这多少带来一些浪费,因为并不是所有的字符串都是非英文字符的。UTF-8编码方式正好可以解决这个问题,只有当字符不是ASSII码的时候他采用双字节来表示,这样就节省了空间。这里我只总结了三种J2ME常见的中文问题。

  1. 网络传输中的中文问题
        解决这个问题的关键是我们不采用InputStream或者OutputStream提供的方法按照字节来传递数据,而是把InputStream或者OutputStream封装为DataInputStream和DataOutputStream。这样我们就可以使用DataOutputStream中的writeUTF(String s)来送出数据了,同时可以使用DataInputStream提供的readUTF()来读入数据。注意在这两个方法搭配使用的时候要注意顺序。比如我们在联网的时候可能写出这样的代码
       
        客户端
      dos.writeInt(myint);
        dos.writeByte(mybyte);
        dos.writeUTF(myString);

        服务器端
        int i = dis.readInt();
        byte b = dis.readByte();
        String s = dis.readUTF(); 
  2. RMS持久性存储的中文问题
        由于RMS中的数据存储都是按照byte[]的格式存储的,因此我们需要稍微变化一下,但是基本上还是走UTF-8的思路。
       
        写入数据
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeUTF(myString);
        byte[] data = baos.toByteArray();
        rs.addRecord(data,0,data.length);

        读出数据
        byte[] data = rs.getRecord(index);
        ByteArrayInputStream bais = new ByteArrayInputStream(data);
        DataInputStream dis = new DataInputStream(bais);
        String myString = dis.readUTF();
  3. 读取中文文件的问题
    在MIDP中并不支持文件系统,但是我们可以读取jar包中的文件。如果文件中含有中文,那么我们需要进行一些特殊的处理,首先我们使用UE或者Notepad工具把相关的文件转换文UTF-8格式编码。我们在读取文件的时候需要进行如下的简单处理。下面是处理函数。

        public String readFromFile(String fileName)
        {
            String returnString = null;
            InputStream is = getClass().getResourceAsStream(fileName);
            if (is != null)
            {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                int ch = 0;
                try
                {
                    while ((ch = is.read()) != -1)
                    {
                        baos.write(ch);
                    }
                    byte[] data = baos.toByteArray();
                    returnString = new String(data, "UTF-8");
                    is.close();
                    baos.close();

            } catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        return returnString;
    }

RT-DERT安卓部署教程 这个文档中的代码案例,实现了拍照和选图识别,两个功能,可以看效果图。UI做了美化:显示类别机和数量。代码下载地址:通过网盘分享的文件:android_rtdert.zip链接: https://pan.baidu.com/s/1k6e-d_lov1OPgUmit5i_cA?pwd=hpfi 提取码: hpfi–来自百度网盘超级会员v8的分享。 阅读详情

相关推荐

J2ME相关技术,介绍J2ME问题处理

J2ME相关资源,介绍J2ME的相关基础知识,图片加载、网络连接问题、进度条相关问题

彻底解决J2ME中的中文问题

 在J2ME程序设计过程中,在存储记录集、网络传输数据、以及读取资源文件中的数据时,都可能存在中文问题。       中文问题的本质是保存、传输中文时使用的字符编码和读取、获得中文时的字符编码不同。在J2ME中所有的手机都支持UTF-8格式的字符集。       在使用数据的时候,一般出现中文问题是在将字符串和字节数组转换的时候产生,下面是编码中文产生乱码的转换方法:      

溺水的鱼 - Later equals never. 966

j2me不能调试问题已解决

这是解决j2me不能调试的问题。在做移动开发时所遇到的问题,根据此文件就可以解决问题

J2ME逐行读取文本文件

J2ME逐行读取文本文件Reading a text file line by line。在J2ME中没有提供类似J2EE中 BufferedReader 的函数去逐行读取文本,以下代码增加了这个功能。IDCS001006  PlatformS60 3rd Edition, FP1 Tested on devicesNokia N95 8GB CategoryJava ME SubcategoryFiles/Data  Keywords (APIs, classes, methods, function

jacky choise 1090

在J2ME中读取各种格式的文本文件

在J2ME中读取各种格式的文本文件在J2ME开发过程中,我们经常会把一个文字信息保存在txt格式的文本文件中做为资源。这样便于修改和管理。那么读取它们对于一些刚接触j2me的朋友会有些困难。前几天研究了下,看了一些兄弟的文章和代码,总结出3种方法分别读取Unicode,UTF-8,Unicode big endian格式的文件...本文没考虑读取的效率问题。  这三种方法都能读取中文和英文字符

lingfengtengfei的专栏 683

j2me里面读取txt文本的方法(支持中文)

/**  *  * @todo 一定要确定读取的文件为utf-8格式要不然会出错,用ue可以转换成utf-8  * @param name  *            String  * @return String  */ public String getTextByUTF(String name) {  String strReturn = "";  int ic;  InputStream

Hally's Home 1048

J2ME游戏中读入文本并存储String数组中

一个在J2SE中十分钟即告完成的代码,在J2ME中花费了一个下午.是什么样的代码呢?[要求]在游戏中读入文本形式存储的hints[分析]J2ME没有BufferReader,用InputStreamReader吧既然没有BufferReader,也就不要奢望有readLine()了,自己慢慢循环吧[源代码][code]/* read hint----------------------------

一个终点一个起点更是一个过程 864

01dwr - dwr简介

DWR 是一个可以允许你去创建 AJAX WEB 站点的 JAVA 开源库 。它可以让你在浏览器中的 Javascript 代码调用 Web 服务器上的 Java 代码,就像在 Java 代码就在浏览器中一样。 DWR 包含 2 个主要部分: 一个运行在服务器端的 Java Servlet,它处理请求并且向浏览器发回响应。 运行在浏览器端的 JavaScript,它发送请求而且还能动态更新网页。...

阿甘兄 537

DWR系列01-DWR文档之DWR总览

October 19, 2006 DWR文档之DWR总览 Filed under: DWR — Jet @ 10:30 pm 原文出处: http://www.javatang.com/archives/2006/10/19/301977.html 翻译: Jet Mah 声明: 请维持文章的完整性任意转载 DWR:在Java 中使用Ajax如此简单 DWR 是一个 Java 开源类库,专门...

acme1921209 166

【DWR系列01】-DWR简介及入门例子

一、DWR简介   dwr是一个Ajax框架,官方网站:http://directwebremoting.org/dwr/,最新版本3.0.1,要求jdk1.6及以上。   如下图所示,可以通过DWR来调用Java方法,并通过DWR封装的工具类来对页面元素进行简单处理:   上面的展示是对Ajax的封装,简化了用户的操作,当然最常用的还是逆向Ajax(需要DWR2.0及以上版本),就...

weixin_30401605的博客 236

DWR学习-01

DWR(Direct Web Remoting)是一个Ajax的开源框架,用于改善web页面与Java类交互的远程服务器端的交互体验,可以帮助开发人员开发包含AJAX技术的网站。它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。 现在我们来看看dwr是怎么处理相应的关系的。 Ajax是通过Javascript向服务器发出请求来获取相应的数据的,所以首先

写博客只为学习 332

J2ME中文版教程 J2ME教程

J2me学习的好帮手,详解,细节,自认为很有帮助,解密版,

dwr01

欢迎访问: www.ptcms.cndwr 中的js 可以接收后台返回的xml,字符串(整型)和集合类型及java对象 。

j2ee开发的专栏 116

DWR中文文档v0.9 01

序章说明我做这样都是DWR中文文档v0.9 .pdf中的转载过来的.我看PDF很不习惯,所以做了一个网页版的转换.方便自己学习. DWR中文文档v0.9 DWR 2.0 方佳玮 编著 部分原创/部分整理/部分翻译 版权声明 本书目前仅发行网络版,完全免费,转载请注明作者信息。任何出版社或个人未经作者允许不得出版印刷。 另外如果发现本人的部分内容有所抄袭,请不要来找我理论,我本来

飞鸟Blog 1192

DWR中文文档v0.9 01

序章 说明我做这样都是DWR中文文档v0.9 .pdf中的转载过来的.我看PDF很不习惯,所以做了一个网页版的转换.方便自己学习.   DWR中文文档v0.9 DWR 2.0 方佳玮 编著 部分原创/部分整理/部分翻译  版权声明 本书目前仅发行网络版,完全免费,转载请注明作者信息。任何出版社或个人未经作者允许不得出版印刷。 另外如果发现本人的部分内容有所抄袭,请不要来找我理论,我本来做的就是公益...

lgf444 152

dwr入门 -- 01 -- Hello Word

dwr:http://directwebremoting.org/dwr/index.html   1、新建WEB项目,把dwr.jar放在WEB-INF/lib下.   2、修改web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.c...

iteye_20011的博客 112

2008-01-12 | 用dwr封装表单项提交表单

首先,配置dwr环境,网上很多资料都说得很详细,这里就不写了。 dwr封装form表单项,需要用到dwr定义的一个js方法:DWRUtil.getValues(yourform),这个方法可以返回一个指定form中的表单项的名称和值的map对象。 例如: 那么DWRUtil.getValues("myform")将返回该form中的表单项的一个map对象。就不需要再写docu...

fayf的博客 139

dwr_ssh项目

dwr_ssh 链接:http://pan.baidu.com/s/1qWCbiTe 密码:deznfg ├dwr.jar ├文档.txt ├ │  ├.classpath │  ├.myhibernatedata │  ├.mymetadata │  ├.mystrutsdata │  ├.project │  ├.springBeans │  ├ │  ├ │

u012325112的博客 236

directdriven.rar_永磁直驱 风力_电机并网仿真_直驱 并网_风力 并网_风力发电机

直驱式永磁风力发电机并网控制,MATLAB仿真

上一篇: 刘翔一句话给了社会一耳光[ZZ]
下一篇: J2ME开发网鼓励网友发表原创文章(有奖)
mingjava
博客等级 码龄24年 68粉丝 114原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值