Greasy Fork is available in English.

NGA Character Code Converter

NGA 字符转码:发表、回复、编辑时,在提交前自动将部分原本直接提交无法正常显示的字符进行转码,使之提交后可以正常显示;编辑时将代码转回字符,方便编辑。

Από την 27/03/2017. Δείτε την τελευταία έκδοση.

// ==UserScript==
// @name         NGA Character Code Converter
// @namespace    https://greasyfork.org/zh-CN/scripts/28052-nga-character-code-converter
// @version      0.0.4
// @icon         http://bbs.nga.cn/favicon.ico
// @description  NGA 字符转码:发表、回复、编辑时,在提交前自动将部分原本直接提交无法正常显示的字符进行转码,使之提交后可以正常显示;编辑时将代码转回字符,方便编辑。
// @author       AgLandy
// @include      /^https?://(bbs\.ngacn\.cc|nga\.178\.com|bbs\.nga\.cn)/.+/
// @grant        none
// ==/UserScript==


function addScript(sc){
    $('head').append($('<script type="text/javascript" />').html(sc));
}

function u2a(){
    var t = $('TEXTAREA').last()[0].value;
    if(t){
        var r = /&#(\d+);/;
        while(r.test(t))
            t = t.replace(r, String.fromCharCode(RegExp.$1));
        $('TEXTAREA').last()[0].value = t;
    }
}

function codeC(){
    var sc = "function nCCC(e){\
        var t = $(e.target).parentsUntil('div.single_ttip2, div.mc').last().find('TEXTAREA')[0];\
        var v = t.value;\
        if(v){\
            if(e.button == 2){\
                var r = /&#(\\d+);/;\
                while(r.test(v))\
                v = v.replace(r, String.fromCharCode(RegExp.$1));\
            }\
            else{\
                var r = /([\\u00a0-\\u02ff\\u2010-\\u2013\\u2015-\\u2017\\u2025\\u2030-\\u203e\\u2105\\u2109\\u2116\\u2121\\u2160-\\u217f\\u2190-\\u2199\\u2200-\\u22ff\\u2312\\u2460-\\u249b\\u2500-\\u2642\\u3000\\u3003\\u3005\\u3007\\u300c-\\u300f\\u3012-\\u3015\\u301d-\\u3029\\u30f4-\\u30f6\\u3100-\\u312f\\u3190-\\u319f\\u3220-\\u3243\\u3280-\\u32b0\\u338e-\\u33d5\\ufe30-\\ufe6f\\uff02-\\uff0b\\uff0d-\\uff19\\uff1c-\\uff1e\\uff20-\\uff5d\\uffe2-\\uffe4])/;\
                while(r.test(v))\
                v = v.replace(r, '&#' + RegExp.$1.charCodeAt() + ';');\
            }\
            t.value = v;\
        }\
    }";

    addScript(sc);

    if($('TEXTAREA').length)
        u2a();

    if($('#fast_post_c').length)
        $('#fast_post_c').find('.uitxt1').attr('onmousedown','nCCC(event)');
    else
        $('.uitxt1').attr('onmousedown','nCCC(event)');

    $('body').on("click","a[href^='/post.php']",function(){
        setTimeout(function(){
            u2a();
            $('.single_ttip2').find('.uitxt1').attr('onmousedown','nCCC(event)');
        },500);
    });
}

addEventListener ('DOMContentLoaded', codeC(), false);