Edit in JSFiddle

    // 문자열 --> HTML 정식 유니코드 문자열
    function getStringToUnicodeHTML(str) {

        str = str || '';

        var ret = [];
        var strs = str.split('');

        for (var i = 0, length = strs.length; i < length; i++) {
            ret.push('&#' + strs[i].charCodeAt(0));
        }

        return ret.join('');
    }

    // 문자열 --> 유니코드 문자열
    function getStringToUnicode(str) {

        str = str || '';

        var ret = [];
        var strs = str.split('');

        for (var i = 0, length = strs.length; i < length; i++) {
            ret.push(escape(strs[i]).replace('%', '\\'));
        }

        return ret.join('');
    }


    // 유니코드 문자열 --> 문자열
    function getUnicodeToString(unicodes) {

        unicodes = unicodes || [];

        var ret = [];

        for (var i = 0, length = unicodes.length; i < length; i++) {
            ret.push(unescape(unicodes[i]));
        }

        return ret.join('');
    }

    // HTML 정식 유니코드 문자열 --> 문자열
    function getUnicodeHTMLToString(unicodes) {

        unicodes = unicodes || [];

        var ret = [];

        for (var i = 0, length = unicodes.length; i < length; i++) {
            ret.push(String.fromCharCode(parseInt(unicodes[i].replace('&#', ''), 10)));
        }

        return ret.join('');
    }

    alert(getStringToUnicodeHTML('전성균'));
    alert(getStringToUnicode('전성균'));
    alert(getUnicodeToString(['\uC804', '\uC131', '\uADE0']));
    alert(getUnicodeHTMLToString(['&#51204', '&#49457', '&#44512']));