<%@ 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的。
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" ) ;
}