V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rogeecn
V2EX  ›  程序员

这种垃圾字符怎么过滤?

  •  
  •   rogeecn · 2014-08-07 11:34:48 +08:00 · 4004 次点击
    这是一个创建于 3760 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不能发图片么?☑ ♨ ✔ 不知道是什么字符。谁知道怎么过滤?不限于这几种字符,应该还有别的更多 这种无聊字符。。
    我还想知道这种字符从哪儿来的?
    13 条回复    2014-08-08 11:10:33 +08:00
    jakwings
        1
    jakwings  
       2014-08-07 11:43:56 +08:00   ❤️ 1
    emoji 表情符之类的,何必过滤,一般都不是很重要的内容。
    rogeecn
        2
    rogeecn  
    OP
       2014-08-07 11:46:55 +08:00
    @jakwings 关键是这东西出现在标题里了。
    jakwings
        3
    jakwings  
       2014-08-07 11:47:16 +08:00
    @jakwings 我还以为楼主看不到那些字符……查一下特殊字符映射表就知道了,大致是在 U+2600-U+27BF。
    Actrace
        4
    Actrace  
       2014-08-07 12:41:25 +08:00
    反向匹配,只允许特定字符出现.
    Delbert
        5
    Delbert  
       2014-08-07 12:45:34 +08:00
    我晕。emoji啊,去 http://getemoji.com 整个页面都是楼主所谓的垃圾字符……

    比如 Face Emoji
    😄 😃 😀 😊 ☺ 😉 😍 😘 😚 😗 😙 😜 😝 😛 😳 😁 😔 😌 😒 😞 😣 😢 😂 😭 😪 😥 😰 😅 😓 😩 😫 😨 😱 😠 😡 😤 😖 😆 😋 😷 😎 😴 😵 😲 😟 😦 😧 😈 👿 😮 😬 😐 😕 😯 😶 😇 😏 😑 👲 👳 👮 👷 💂 👶 👦 👧 👨 👩 👴 👵 👱 👼 👸
    dong3580
        6
    dong3580  
       2014-08-07 12:50:30 +08:00
    字体字符,都可以自己做自己的。。。能过滤完?
    jsonline
        7
    jsonline  
       2014-08-07 12:51:03 +08:00
    你不能用黑名单,只能用白名单,吧。
    imn1
        8
    imn1  
       2014-08-07 13:07:34 +08:00
    @dong3580 自己造的别人看不到,想别人也能看到一般都是unicode符号
    @jsonline +1
    unicode符号太多,而且区段很多,只能用白名单把你想要的文字区段保留
    http://www.unicode.org/charts/ 这里是unicode所有区段的说明及对应字符表pdf下载
    dong3580
        9
    dong3580  
       2014-08-07 13:10:36 +08:00
    @imn1
    引用,看“淘宝”那几个字就是字体。
    jakwings
        10
    jakwings  
       2014-08-07 13:16:43 +08:00
    估计可以植入一段 CSS,用设计好的 0 宽度字符 webfont 替换掉这些符号的常用字体中的对应字符实现无 JS 无 JS 损害过滤。

    具体方法如下:
    @font-face {
    font-family: "Custom";
    font-style: normal;
    src: url(Custom.woff) format('woff');
    }
    @font-face {
    font-family: "Custom";
    font-style: bolder;
    src: url(Custom.woff) format('woff');
    }
    @font-face{
    font-style: normal;
    font-family: "SimSun";
    src: local("Custom");
    unicode-range: U+2600-27BF, U+2E80-9FFF, U+F900-FAFF, U+FE30-FE4F, U+20000-2FA1F;
    }
    jakwings
        11
    jakwings  
       2014-08-07 13:21:57 +08:00
    啊,修正了一下,顺便放到 gist 上了。
    https://gist.github.com/jakwings/7ae0e5bf833ed64c6fbf
    imn1
        12
    imn1  
       2014-08-07 13:31:17 +08:00
    @dong3580 哪里?
    qq5775548
        13
    qq5775548  
       2014-08-08 11:10:33 +08:00
    直接过滤出自己允许的字符~~就可以过滤掉不要的字符 不过貌似这也不好搞
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2905 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:30 · PVG 11:30 · LAX 19:30 · JFK 22:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.