`

Java开发WAP中文问题解决方案

阅读更多
 
<%@   page   language="java"%>   
  
<%@   page   contentType="text/vnd.wap.wml"   pageEncoding="UTF-8"%>   
  
<?xml   version="1.0"   encoding="UTF-8"?>   
  
<!DOCTYPE   wml   PUBLIC   "-//WAPFORUM//DTD   WML   1.1//EN"   "http://www.wapforum.org/DTD/wml_1.1.xml">   
  
<wml>   
  
<card>   
  
</card>   
  
</wml>   

 

对于输出页面上的中文,写一个类来转换成UTF,这样就解决了在不同平台显示中文的问题,而且移动的网关也是utf-8的。

 

package cn._5znb.j2ee.tag.base;

import java.io.IOException ;
import java.io.UnsupportedEncodingException ;

/** *//**
 * 转化字符的类
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2006</p>
 * <p>Company: sinotec</p>
 * 
@author 唐韧
 * 
@version 1.0
 
*/

public class ConvertString
...{
    
private static ConvertString cs = null ;
    
private ConvertString ()
    
...{
    }


    
public static ConvertString getInstance ()
    
...{
        
if ( cs == null )
        
...{
            cs 
= new ConvertString () ;
        }

        
return cs ;
    }


    
public static String IsoConvertGb ( String strIn )
    
...{
        String strOut 
= null ;
        
if ( strIn == null || ( strIn.trim () ).equals ( "" ) )
        
...{
            
return strIn ;
        }

        
try
        
...{
            
byte[] b = strIn.getBytes ( "ISO8859_1" ) ;
            strOut 
= new String ( b , "GBK" ) ;
        }

        
catch ( Exception e )
        
...{}
        
return strOut ;
    }


    
public static String ConvertString ( String s )
    
...{
        StringBuffer ustring 
= new StringBuffer () ;
        s 
= IsoConvertGb ( s ) ;
        
for ( int i = 0 ; i < s.length () ; i++ )
        
...{
            Character c 
= new Character ( s.charAt ( i ) ) ;
            
if ( c.toString ().getBytes ().length == 1 )
            
...{
                ustring.append ( c.charValue () ) ;
            }

            
else
            
...{
                
int a = ( int ) c.charValue () ;
                String temp 
= new String ( "&#x" + Integer.toHexString ( a ) +
                                           
";" ) ;
                ustring.append ( temp ) ;
            }

        }

        
return ustring.toString () ;
    }


    
public String getStr ( String str )
    
...{
        
try
        
...{
            String temp_p 
= str ;
            
byte[] temp_t = temp_p.getBytes ( "ISO8859-1" ) ;
            String temp 
= new String ( temp_t ) ;
            
return temp ;
        }

        
catch ( Exception e )
        
...{

        }

        
return "null" ;
    }


    
static public String convertUTF8String2Unicode ( String instr )
        
throws IOException
    
...{
        
int charindex = instr.length () ;
        
int actualvalue ;
        
int inputvalue ;
        StringBuffer sbtemp 
= new StringBuffer () ;

        
for ( int i = 0 ; i < charindex ; )
        
...{
            actualvalue 
= -1 ;
            inputvalue 
= instr.charAt ( i++ ) ;

            inputvalue 
&= 0xff ;

            
if ( ( inputvalue & 0x80 ) == 0 )
            
...{
                actualvalue 
= inputvalue ;
            }

            
else if ( ( inputvalue & 0xF8 ) == 0xF0 )
            
...{
                actualvalue 
= ( inputvalue & 0x1f ) << 18 ;

                
int nextByte = instr.charAt ( i++ ) & 0xff ;
                
if ( ( nextByte & 0xC0 ) != 0x80 )
                
...{
                    
throw new IOException ( "Invalid UTF-8 format" ) ;
                }

                actualvalue 
+= ( nextByte & 0x3F ) << 12 ;

                nextByte 
= instr.charAt ( i++ ) & 0xff ;
                
if ( ( nextByte & 0xC0 ) != 0x80 )
                
...{
                    
throw new IOException ( "Invalid UTF-8 format" ) ;
                }

                actualvalue 
+= ( nextByte & 0x3F ) << 6 ;

                nextByte 
= instr.charAt ( i++ ) & 0xff ;
                
if ( ( nextByte & 0xC0 ) != 0x80 )
                
...{
                    
throw new IOException ( "Invalid UTF-8 format" ) ;
                }

分享到:
评论

相关推荐

    wap浏览器开发资料大全(含wml解析器)

    Java以其跨平台的特性,成为开发WAP应用的理想选择。在本压缩包中,你可以找到Java实现的WAP相关代码,这对于想要在Java环境中构建WAP服务或者浏览器的开发者来说,提供了宝贵的参考材料。 **C++ WAP** C++是一种...

    原生安卓影视app苹果CMS对接原生影视APP源码JAVA影视支持PC+WAP+APP

    标题中的“原生安卓影视app苹果CMS对接原生影视APP源码JAVA影视支持PC+WAP+APP”指的是一款基于Java开发的原生Android应用程序,主要用于播放影视内容。这款应用能够与苹果CMS(内容管理系统)进行对接,实现数据的...

    开发wap注意事项---wml中文乱码

    本文将详细探讨WML中文乱码的原因以及解决方法,并结合具体的代码示例来进行说明。 #### 二、WML中文乱码问题分析 ##### 2.1 字符编码不一致导致的乱码 WML文档中的中文乱码问题通常是由于字符编码设置不一致导致...

    WAP自定义翻页的解决方案之二,代码

    本篇将探讨WAP自定义翻页的解决方案,特别是从代码实现的角度出发。 在WAP自定义翻页的设计中,主要目标是提供一个友好的用户体验,让用户能够轻松地在多个页面间导航。传统的翻页方式可能包括数字链接、上一页/...

    百宝箱业务应用程序开发规范-JAVA分册

    - **技术支持与售后服务**:SP需要提供技术支持和售后服务,解决用户问题。 #### 八、总结 《百宝箱业务应用程序开发规范—JAVA分册》为中国移动Java业务的开发者提供了全面的技术指导和支持。通过对业务类型的...

    java短信系统SMS,可发wap push

    Java短信系统SMS是一种基于Java开发的短信服务平台,它具备发送普通短信、长短信以及WAP Push短信的功能。在本文中,我们将深入探讨这些关键概念及其在IT行业中的应用。 首先,我们来理解普通短信(Short Message ...

    wap代码 html过滤器(java)

    ### WAP代码HTML过滤器(Java):深入解析与...总之,“wap代码html过滤器(Java)”代表了一段特定历史时期的创新解决方案,其背后的技术原理和实现细节,即便在当今的Web开发领域,也依然具备一定的学习和研究价值。

    Struts开发Wap应用(PDF)

    这些成员覆盖了全球超过 90% 的手机市场、大量的全球运营商、领先的基础设施提供商、软件开发商以及其他为无线产业提供解决方案的组织。WAP Forum 的主要目标在于确保产品的互操作性和无线市场的增长。 #### 二、...

    最新JAVA云商城管理系统源码 PC+WAP手机版.rar

    Java云商城管理系统是一款基于Java编程语言开发的全面电子商务解决方案,集成了PC端和WAP(移动设备)版本,为用户提供便捷的在线购物体验。这款源码是开发者们深入理解Java Web应用开发、电商系统架构以及移动端...

    WAP开发教程.rar

    "WAP开发教程.pdf"是本次教程的核心,详细阐述了WAP开发的各个方面,包括技术原理、开发步骤、最佳实践和问题解决方案。"E书说明.txt"可能是关于如何阅读和使用PDF文件的指南,特别是对于可能不熟悉电子书格式的用户...

    基于J2ME的Java手机软件开发

    针对上述问题,J2ME提供了一种解决方案,使得开发者能够在多种移动设备上编写一次代码即可运行。这种技术的出现使得手机软件变得更加灵活多变,用户可以通过下载新的Java应用来扩展手机的功能而无需更换硬件。因此,...

    jwap-1.1-src.zip_WAP Gateway Java_gateway_jwap_jwap source code_

    【标题】"jwap-1.1-src.zip" 指的是一个名为 "jwap-1.1" 的 Java 源代码版本的压缩包。"WAP Gateway Java_gateway_jwap_jwap source code" ...这不仅有助于对 WAP 技术的理解,也有助于开发自己的移动网络解决方案。

    员工管理系统-java.zip

    本系统以“员工管理系统-java.zip”为载体,主要运用Java开发语言,结合WEB和WAP应用,打造了一套高效、便捷的员工管理解决方案。 首先,我们来谈谈Java技术。Java是一种广泛应用于网络应用开发的面向对象的编程...

    Java 开发基于Java ME无线网络移动端的俄罗斯方块游戏的实现(源代码+论文).rar

    9. **论文解读**:论文部分可能详细介绍了设计思路、遇到的技术问题以及解决方案,为学习者提供了理论背景和实践经验的总结。 10. **测试与调试**:开发完成后,必须进行详尽的测试,确保游戏在不同设备上的兼容性...

    java开源包6

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

    java开源包9

    JSTUN 是另外一个用来解决穿越 NAT 进行通讯的 Java 解决方案,是 STUN 协议的 Java实现。 在浏览器上运行Java程序 Doppio DoppioVM 是一个可在浏览器上直接运行 Java 项目的系统,无需任何插件支持。目前它包含一...

Global site tag (gtag.js) - Google Analytics