• 06
  • Nov

现在给出PHP中的完美解决方案,无论是采用普通ASCII码,还是UTF-8格式存储,提交的中文字符奇偶,都没有问题。

采用普通文件格式ASCII码存储,保存为testgb.php

CODE:

[Copy to clipboard]

<?php
header(”Content-Type: text/vnd.wap.wml;charset=GB2312″);
echo ‘<?xml version=”1.0″ encoding=”GB2312″?>’;
echo ‘<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>’;
?>
<wml>
<card id=”main” title=”PHP Web”>
<p>
GET提交,结果:
<?php echo iconv(”utf-8″, “gb2312″,$_GET[”name”]);?><br/>
POST提交,结果:
<?php echo iconv(”utf-8″, “gb2312″,urldecode($_POST[”name”])); ?><br/>
<input name=”name” emptyok=”false” tabindex=”2″ format=”*m”/>
<a href=”testgb.php?name=$(name:e)”>提交aaa</a><br/>
<anchor>提交anchor
<go href=”testgb.php” method=”post”>
<postfield name=”name” value=”$(name:e)” />
</go>
</anchor><br/>
</p>
</card>
</wml>

采用UTF-8格式存储,保存为test_utf.php

CODE:

[Copy to clipboard]

<?php
header(”Content-Type: text/vnd.wap.wml;charset=UTF-8″);
echo ‘<?xml version=”1.0″ encoding=”UTF-8″?>’;
echo ‘<!DOCTYPE wml PUBLIC “-//WAPFORUM//DTD WML 1.1//EN” “http://www.wapforum.org/DTD/wml_1.1.xml”>’;
?>
<wml>
<card id=”main” title=”PHP Web”>
<p>
GET提交,结果:
<?php echo $_GET[”name”]; ?><br/>
POST提交,结果:
<?php echo urldecode($_POST[”name”]); ?><br/>
<input name=”name” emptyok=”false” tabindex=”2″ format=”*m”/>
<a href=”test_utf.php?name=$(name:e)”>提交aaa</a><br/>
<anchor>提交anchor
<go href=”test_utf.php” method=”post”>
<postfield name=”name” value=”$(name:e)” />
</go>
</anchor><br/>
</p>
</card>
</wml>

JSP方面我不会,没有测试。

JSP方面,苛子:测试也有中文奇偶字符问题

CODE:

[Copy to clipboard]

public static String decode(String s)
{
StringBuffer stringbuffer = new StringBuffer();
s = s.replace(’%',’0′);
for(int i=1; i<s.length(); i+=3)
{
if(s.charAt(i)==’+')
{
stringbuffer.append(’ ‘);
i++;
continue;
}

try {
stringbuffer.append((char)Integer.parseInt(s.substring(i, i+2), 16));
} catch (Exception e) {
}
}
String s1 = stringbuffer.toString();
try
{
byte abyte0[] = s1.getBytes(”ISO-8859-1″);
s1 = new String(abyte0, “UTF-8″);
}
catch(UnsupportedEncodingException unsupportedencodingexception) {}
return s1;
}

苛子说:这个decode是我修改过了的, Servlet里面那个decode好像有问题,解不了奇数个的中文.
这个decode是我修改过了的, Servlet里面那个decode好像有问题,解不了奇数个的中文.

原载: 上海SEO优化研究院 | 作者: 精灵SEO
原文链接:http://www.lijinglin.com/wap-post-php.html
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

Tags: ,

阅读过本文的朋友还读过:

» You can leave a comment, or trackback from your own site.

RSS feed | Trackback URI

1 Comment »

Comment by seo
2008-09-25 14:56:25

好 支持 写的不错

 
Name (required)
E-mail (required - never shown publicly)
URI
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong> in your comment.