J2ME中文问题的解决方案

J2ME相关技术,介绍J2ME的问题处理 J2ME相关资源,介绍J2ME的相关基础知识,图片加载、网络连接问题、进度条相关问题 立即下载
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;
    }

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

相关推荐

J2ME中文版教程 J2ME教程

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

彻底解决J2ME中的中文问题

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

溺水的鱼 - Later equals never. 969

别再死记硬背了!用51单片机的AD/DA和PWM,亲手做个简易示波器信号发生器

本文详细介绍了如何利用51单片机的PWM和AD/DA功能制作简易示波器信号发生器。通过PWM模拟DAC输出波形,结合XPT2046 ADC进行信号测量,实现方波、三角波和正弦波的生成与显示。项目不仅成本低廉,还能帮助电子爱好者深入理解51单片机的核心功能,是理论与实践结合的绝佳案例。

weixin_28675839的博客 265

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

PCB激光直接成像(LDI)设备技术解析与优化方案

激光直接成像(LDI)是PCB制造中的关键数字化工艺,通过激光束直接在基板上形成电路图案。其核心技术在于高精度光学系统与智能控制算法的结合,工作精度可达微米级。在HDI板、柔性电路等高端PCB制造中,LDI技术能显著提升线宽精度和层间对位准确性。当前行业面临材料适配性、热变形控制等挑战,动态能量补偿、多波长曝光等创新方案正在突破这些瓶颈。随着模块化设计、预测性维护等工程实践的普及,LDI设备综合效率持续提升,为5G、汽车电子等领域的精密电路生产提供关键技术支撑。

weixin_29168393的博客 390

从论文到生产:iSLIP优先级匹配算法在SDN交换机中的20年演进史

本文回顾了iSLIP优先级匹配算法在SDN交换机中的20年演进历程,从斯坦福大学的原始论文到现代芯片实现。通过独特的指针滑动和迭代循环机制,iSLIP算法显著提升了交换机的吞吐量和公平性,解决了传统FIFO调度的队头阻塞问题。文章详细探讨了算法在硬件实现中的工程挑战、开源实践及未来AI时代的智能调度方向。

weixin_29230649的博客 331

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 1093

IBM V3700更换控制器2(503错误)

正常的node1 ,机器代码版本:7.5.0.3, 机器代码构建:115.51.1509171734000。耐心等待后,刷新,看到node2,状态变成 节点状态:服务,错误:656,版本和node1一样了。新换的node2 ,机器代码版本:7.2.0.5, 机器代码构建:87.8.1404221000。耐心等待,刷新,node2,状态看到了,节点状态:活动,错误 724 1 1 0。拔出故障的控制,把内存和HBA卡,电池换到新的控制器。新的控制还是报错无法使用,节点状态:服务 错误:503。

klyshao的博客 4446

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

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

lingfengtengfei的专栏 684

Python+ArcGIS实战:5步搞定土壤类型预测(附随机森林模型配置技巧)

本文详细介绍了如何结合Python与ArcGIS,利用随机森林模型进行土壤类型预测。通过5个核心步骤——数据预处理、样本创建、模型构建、空间预测与精度验证,构建了一套自动化、高精度的空间预测工作流,并提供了关键的模型配置与调参技巧,助力GIS开发者高效完成土壤制图任务。

weixin_29227585的博客 395

热红外图像小目标检测算法综述

热红外小目标检测算法综述,着重介绍基于深度学习的小目标检测算法

Littro Innovations 4244

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

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

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

Tmux学习总结

Tmux 重要概念 使用 Tmux 的时候千万不要去背指令,所有的指令都可以在 .tmux.conf 配置文件中绑定自己顺手的快捷键,也可以配置开启鼠标。 这个是我的配置文件:https://github.com/zuorn/tmux.conf 在Tmux逻辑中,需要分清楚Server > Session > Window > Pane这个大小和层级顺序是极其重要的,直接关系到工作效率: Server:是整个tmux的后台服务。有时候更改配置不生效,就要使用tmux kill-

满目星辰 573

J2ME中文问题的解决方案(转载)

Java的中文问题通常会困扰很多开发者,你可能在开发Web应用程序的时候遇到中文参数的传递问题,最后你可能选择使用Filter把Request的编码方式设置为GBK来解决。在J2ME的开发中我们同样会遇到中文问题,比如在RMS中存储中文、网络传输中传输中文、从文件中读取中文等问题。    我们在解决中文问题的时候,用到的最多的一个词就是UTF-8。我们知道ASCII码是单字节编码方式,可以解决

289

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

WW、forever的博客 1678

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

J2ME中文问题的解决方案-----转

    Java的中文问题通常会困扰很多开发者,你可能在开发Web应用程序的时候遇到中文参数的传递问题,最后你可能选择使用Filter把Request的编码方式设置为GBK来解决。在J2ME的开发中我们同样会遇到中文问题,比如在RMS中存储中文、网络传输中传输中文、从文件中读取中文等问题。    我们在解决中文问题的时候,用到的最多的一个词就是UTF-8。我们知道ASCII码是单字节编码方式,

393

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JAVA/J2ME中文编码问题完全解决方案

 最近开发了一个在手机上打谱的围棋软件(请到本人新浪博客了解详细介绍:yygo手机围棋),因为要读中文棋谱,所以需要支持中文编码。在诺基亚,索爱,多普达等机器上运行良好,可以打开中文棋谱,并显示正常的中文棋评。但在三星,MOTO,联想等机型上无法打开文件。无论用什么中文编码,包括GB2312,GB18030,GBK,都不行。我的做法是:try {      reader = new Inp

blade2001的专栏 810

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

在j2me编程中使用 nokia 的中文模拟器

  在j2me编程中,经常需要使用nokia系列的模拟器,但是nokia developer’s suit for j2me中提供的三个模拟器都无法正确的显示中文,在程序开发过程中,大家经常要为这个事情头疼。   下面介绍几个可以在编程中支持中文显示的nokia模拟器:   如果大家进行是nokia s40 1.0版本的开发的话,可以使用7210的模拟器,下载地址为:http:

566

如何解决J2ME中文的乱码问题

Java的中文问题通常会困扰很多开发者,你可能在开发Web应用程序的时候遇到中文参数的传递问题,最后你可能选择使用Filter把Request的 编码方式设置为GBK来解决。在J2ME的开发中我们同样会遇到中文问题,比如在RMS中存储中文、网络传输中传输中文、从文件中读取中文等问题。   我们在解决中文问题的时候,用到的最多的一个词就是UTF-8。我们知道ASCII码是单字节编码方式...

baduan2162的博客 241
上一篇: 刘翔一句话给了社会一耳光[ZZ]
下一篇: J2ME开发网鼓励网友发表原创文章(有奖)
mingjava
博客等级 码龄24年 68粉丝 114原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值