转贴:回复人: thefishwilldie(我不懂啊!!!) ( ) 信誉:100 2003-11-18 22:18:09 得分:80
用new bufferReader()或者这样:把这2个方法加进去来回转换
public static String toTrueAsciiStr(String str){
StringBuffer sb = new StringBuffer();
byte[] bt = str.getBytes();
for(int i =0 ;i<bt.length;i++){
if(bt[i]<0){
//是汉字去高位1
sb.append((char)(bt[i] & 0x7f));
}else{//是英文字符 补0作记录
sb.append((char)0);
sb.append((char)bt[i]);
}
}
return sb.toString();
}
public static String unToTrueAsciiStr(String str){
byte[] bt = str.getBytes();
int i,l=0,length = bt.length,j=0;
for(i = 0;i<length;i++){
if(bt[i] == 0){
l++;
}
}
byte []bt2 = new byte[length-l];
for(i =0 ;i<length;i++){
if(bt[i] == 0){
i++;
bt2[j] = bt[i];
}
else{
bt2[j] = (byte)(bt[i]|0x80);
}
j++;
}
String tt = new String(bt2);
return tt;
}
用new bufferReader()或者这样:把这2个方法加进去来回转换
public static String toTrueAsciiStr(String str){
StringBuffer sb = new StringBuffer();
byte[] bt = str.getBytes();
for(int i =0 ;i<bt.length;i++){
if(bt[i]<0){
//是汉字去高位1
sb.append((char)(bt[i] & 0x7f));
}else{//是英文字符 补0作记录
sb.append((char)0);
sb.append((char)bt[i]);
}
}
return sb.toString();
}
public static String unToTrueAsciiStr(String str){
byte[] bt = str.getBytes();
int i,l=0,length = bt.length,j=0;
for(i = 0;i<length;i++){
if(bt[i] == 0){
l++;
}
}
byte []bt2 = new byte[length-l];
for(i =0 ;i<length;i++){
if(bt[i] == 0){
i++;
bt2[j] = bt[i];
}
else{
bt2[j] = (byte)(bt[i]|0x80);
}
j++;
}
String tt = new String(bt2);
return tt;
}
解决方案 »
- 如何让多个组件复用弹出菜单JPopupMenu?
- String转换为日期类型
- 请问JAVA是解释执行的吗?所谓解释执行是什么?JSP的解释执行和JAVA一样的道理吗?什么是运行期?
- DataOutputStream -> writeUTF 方法
- 神啊 救救我吧 jdbTable的问题 佛祖会保佑帮我的人的! 分都送完了 ~~ 希望申出您援助的手
- 请问JComboBox的问题
- 关于java基础类库的使用期限问题
- 怎样才能在一编辑窗口中加入行号?
- 救命啊!java里面怎么生成象com对象那种clsid???
- 如何在java中引用多个接口呢(在线加分)
- 请问,怎样将字符串转换成为数组
- 菜鸟问:我DefaultMutableTreeNode类型的node.getUserObject得到的是个String类型的值,但是
如,你要显示 s="显示中文"
byte[] temp=null;
temp=s.getByte("iso-8859-1");
String t=new String(temp);
t就是你要显示的字符串你试一试吧
用这个语句就可以了
用st输出
str是你要输出的字符