求助,代码问题,里面请!

function cjkEncode(text) {     
if (text == null) {     
return "";     
}     
var newText = "";     
for (var i = 0; i < text.length; i++) {     
var code = text.charCodeAt (i);      
if (code >= 128 || code == 91 || code == 93) {//91 is "[", 93 is "]".     
newText += "[" + code.toString(16) + "]";     
} else {     
newText += text.charAt(i);     
}     
}     
return newText;     
}
这是个转码的js函数,请高手根据实现原理给个java的实现过程,谢谢了!
FineReport译生 发布于 2011-12-8 09:11
回答问题
悬赏:0 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共10回答
最佳回答
0
nanboalex发布于2011-12-8 09:37(编辑于 2023-9-6 09:34)
555
最佳回答
0
译生发布于2011-12-8 09:44(编辑于 2023-9-6 09:34)
555
  • nanboalex nanboalex

    public String convertCode(String str){
                    String code = \"\";
                    if(\"\".equals(str) || null == str){
                            return \"\";
                    }
                    for(int i = 0 ;i < str.length();i++){
                            int unicode = str.codePointAt(i);
                            if(unicode >= 128 || unicode == 91 || unicode == 93){
                                    code += \"[\'\"+unicode+\"\']\";
                            }else{
                                    code += str.charAt(i);
                            }
                    }
                    return code;
            }


    大概是这个样子,不知道你需要用什么字符测试,所以如果你那不方便测试,你给我个字符,我测试看看结果和你要的一致不
    回复
    2011-12-08 09:57 
最佳回答
0
nanboalex发布于2011-12-8 09:57(编辑于 2023-9-6 09:34)
555
  • 译生 译生(提问者)

    :\'(你和我写的是一摸一样啊!可惜不行的了!newText += \"[\" + code.toString(16) + \"]\";   这句你就没有翻译出来的啊!所以结果肯定是错的了。
    回复
    2011-12-08 09:59 
最佳回答
0
译生发布于2011-12-8 09:59(编辑于 2023-9-6 09:34)
555
  • nanboalex nanboalex

    你给个字符,我测试下,还有展示下你要的结果是什么样子的。我看看
    回复
    2011-12-08 10:03 
最佳回答
0
nanboalex发布于2011-12-8 10:03(编辑于 2023-9-6 09:34)
555
  • 译生 译生(提问者)

    你随便输入个中文试试吧!
    回复
    2011-12-08 10:07 
  • 译生 译生(提问者)

    newText += \"[\" + code.toString(16) + \"]\";   这句是转换成16进制的数字,你再看看能否翻译出来!谢谢
    回复
    2011-12-08 10:08 
最佳回答
0
译生发布于2011-12-8 10:07(编辑于 2023-9-6 09:34)
555
  • nanboalex nanboalex

    我输入了一个年度测算表,返回[24180][24230][27979][31639][34920]
    你需要什么格式的
    回复
    2011-12-08 10:10 
最佳回答
0
译生发布于2011-12-8 10:08(编辑于 2023-9-6 09:34)
555
  • nanboalex nanboalex

    public static String convertCode(String str){
                    String code = \"\";
                    if(\"\".equals(str) || null == str){
                            return \"\";
                    }
                    for(int i = 0 ;i < str.length();i++){
                            int unicode = str.codePointAt(i);
                            if(unicode >= 128 || unicode == 91 || unicode == 93){
                                    code += \"[\"+Integer.toHexString(unicode)+\"]\";
                            }else{
                                    code += str.charAt(i);
                            }
                    }
                    return code;
            }



    输入年度测算表返回[5e74][5ea6][6d4b][7b97][8868]
    你再看看有什么问题。
    回复
    2011-12-08 10:15 
最佳回答
0
nanboalex发布于2011-12-8 10:10(编辑于 2023-9-6 09:34)
555
最佳回答
0
nanboalex发布于2011-12-8 10:15(编辑于 2023-9-6 09:34)
555
  • 译生 译生(提问者)

    感觉好像啊!哈哈!谢谢,我去试试!最关键的还是code += \"[\"+Integer.toHexString(unicode)+\"]\";
    这句啊!
    回复
    2011-12-08 10:23 
最佳回答
0
译生发布于2011-12-8 10:23(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 1803浏览人数
  • 最后回答于:2011-12-8 10:23
    活动推荐 更多
    热门课程 更多
    返回顶部