앞 뒤 인 코딩 전달

2691 단어 JavaScriptjsonpC++cC#
배경:
 
인 코딩 은 BS 의 개발 에 있어 서 큰 문제 입 니 다.
1. 질문
2. 질문
오늘 은 좀 도와 주 는 김 에 새로운 해결 방향 을 시도 해 보 겠 습 니 다: 유 니 코드 escape sequence
즉, 유 니 코드 전의 문 자 는 자바 참조, 참조 및 자바 script ecmascript-262-5th 6 sourcetext 및 8.4 the string type) 에 대응 하 는 분석 체 제 를 가지 고 있 습 니 다. 그러면 우 리 는 네트워크 에서 ascii 문 자 를 전송 하면 됩 니 다.
 
전송:
client -> server
javascript 인 코딩:
 
function padding4(c) {
while (c.length < 4) {
        c = "0" + c;
    }
    return c;
}

function encode(str) {
    return str.replace(/./g, function (t) {
        return "\\u" + padding4(t.charCodeAt(0).toString(16));
    })
}

 
자바 디 코딩:
 
static String reverse(String c) {
    Pattern pattern = Pattern.compile("\\\\u([0-9a-f]{4,4})", Pattern.CASE_INSENSITIVE);

    StringBuffer sb = new StringBuffer();
    Matcher m = pattern.matcher(c);
    while (m.find()) {
        String n = m.group(1);
        char ok = (char) Integer.parseInt(n, 16);
        m.appendReplacement(sb, ok + "");
    }
    m.appendTail(sb);
    return sb.toString();
}

 
server -> client
자바 인 코딩:
 
static String js(char my) {
    String str = Integer.toHexString((int) my.charAt(0));
    while (str.length() < 4) {
        str = "0" + str;
    }
    return "\\\\u" + str;
}

 
javascript 디 코딩:
 
function decode(str) {
    return str.replace(/\\u([0-9a-f]{4,4})/ig, function (t,m1) {
        return String.fromCharCode(parseInt(m1,16));
    })
}

 
심지어 구체 적 으로 jsonp, ajax 를 통 해 얻 을 수 있다 면 server 는 '\ uxxx' 를 직접 생 성하 고 디 코딩 은 자바 script 엔진 에 맡 기 면 됩 니 다.
 
단점:
장점 은 서버 인 코딩 설정 과 무관 하고 단점 도 뚜렷 하 다 는 것 이다.
1。앞 뒤 가 불투명 하 다
2。인 코딩 이 부족 하 다 compact. 당연히 직접 인 코딩 바 이 너 리 로 전달 하 는 것 보다 못 하 다.
 

좋은 웹페이지 즐겨찾기