在vbscript中,asc()用于返回参数的ascii码...但是如果我这样写asc("我"),返回的是一个负数..由于汉字是双字节的..应该写成ascw("我").在java中..可以这样写 String s="我";int ch=(int)s.charAt(0);这里ch和ascw("我")的值相同..但是区位码算法中,使用的是asc..在java中,我该怎么做才能使得返回的值和asc("我")相同呢....
调试欢乐多
这样吧..我说具体点..
现在我们大四有信息采集...需要查找汉字区位码..呵呵..我们都是在网上查询..其实也可
以自己写的.....
首先用html+vbscript可以完成(网上一般都是这样)
<htmL>
<head>
<title>区位码</title>
</head>
<script type="text/vbscript">
function getqw(ch)
casc=asc(ch)
用ascw(ch)才返回真正的值,和java写的相同
if casc<0 then casc=casc+65535+1
if casc>255 then
b2=right("0"&((casc and 255)-160),2)
b1=right("0"&(int(casc/256)-160),2)
getqw=ch & " "&b1&b2 &" "
else
getqw=ch
end if
end FunctionFunction show
newStr=""
For i=1 To Len(myform.name.value)
newStr=newStr & getqw(Mid(myform.name.value,i,1))
Next
myform.qw.value=newStr
End function</script>
<body>
<fieldset width=250>
<legend><b>区位码汉字系统</b></legend>
<form name="myfrom" id="myform">
<b>请输入的姓名:</b> <input type="text" size="20" id="name"> &
nbsp;<input type="button" value="查看"
onclick=show><br>
<b>姓名区位码为:</b> <input type="text" size="28" id="qw">
</fieldset>
</body>
</html>想用java模拟一个...在vbscript中.asc(string s)是返回s的ascii码..但是对于汉字,返
回的却是一个负数..在java中,如果我们像获得一个字符的ascii码,一般这样做..
String s="赵";
int ascii=(int)s.charAt(0);
不够ascii是个正数....而asc("赵")返回的是个负数...哪位仁兄知道,在java里面怎么实
现呢?
这是我写的...
import java.util.*;
public class Main{
private static String name,newStr;
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
System.out.print("请输入您的姓名:");
name=cin.nextLine();
for(int i=0;i<name.length();i++){
newStr=getQW(name.substring(i,i+1));
System.out.println(newStr);
}
}
public static int getAscii(String s){
int i=0;
for(int j=0;j<s.length();j++){
i=(int)(s.charAt(i));
}
return i;
}
public static String getQW(String str){
String str1,temp1,str2,temp2,result;
int asc=getAscii(str); //返回的是一个正数
if(asc<0){
asc=asc+65535+1;
}
if(asc>255){
temp2="0"+((asc&255)-160);
str2=temp2.substring(temp2.length()-2);
temp1="0"+((int)(asc/256)-160);
str1=temp1.substring(temp1.length()-2);
result=str+str1+str2; }
else
result=str;
return result;
}}
试试看