首页 > 开发 > 综合 > 正文

WebService Behavior的一个中文Bug

2024-07-21 02:21:34
字体:
来源:转载
供稿:网友

开心记得上次我做试验的时候,好象中文传输是有一些问题。<br>
我忘了是在哪一个阶段用的了,反正在使用某个方法的时候是出了问题。<br>
对了,想起来了。<br>
如下有一个web method<br>
[web method]<br>
public string test(string x)<br>
{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//此处代码省略,将x值记录到服务器端的一个文件中<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return x;<br>
}<br>
然后在客户端调用,并且传递一个中文字符或者其它特殊字符,如&quot;//&quot;等给它,在返回到客户端可以看到其是正确的,但是,你如果打开它存在服务器端的那个文件,就会发现里面存的是一个乱码。<br>
开心想了半天,后来找到一个解决方案,对x进行urldecode就可以了。<br>
然后再在服务器端对其进行判断。<br>
比如,开心做聊天室,想判断其发言是否含有“靠”,“我 靠”这样的不雅字眼,<br>
[webmethod]<br>
public string inputwhatyousay(string isay)<br>
{<br>
&nbsp;&nbsp;&nbsp;//label<br>
&nbsp;&nbsp;&nbsp;&nbsp;if(isay.indexof(&quot;靠&quot;)!=0)<br>
&nbsp;&nbsp;&nbsp;{<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &quot;该发言中有不当言语&quot;;<br>
&nbsp;&nbsp;&nbsp;&nbsp;}<br>
&nbsp;&nbsp;&nbsp;&nbsp;else<br>
&nbsp;&nbsp;&nbsp;{ <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return isay;<br>
&nbsp;&nbsp;&nbsp;}<br>
}<br>
这样的话你可以试一下,无论你在客户端输入多少个“靠”,根本不管用,人家不理你,还是原样返回到客户端,但是,如果你在我程序中的“//label&quot;处增加一行代码<br>
isay=server.urldecode(isay);<br>
则一切正常了:)<br>
<br>
这只是一个临时的解决办法,估计这也是微软的一个bug。等他们下一版本中改正吧。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表