这个。。。

回复列表(55)
  • @Ta / 06-22 00:51 / /

    所以 @无名啊 给的这个范围应该这样标注

    # Unicode 参考来源:https://www.unicode.org/versions/Unicode13.0.0/ch18.pdf
    unicodes = (
        # 中日韩统一汉字
        # \p{Han}
        (0x4E00, 0x9FFF), (0x3400, 0x4DBF), (0x20000, 0x2A6DF), (0x2A700, 0x2B73F), (0x2B740, 0x2B81F),
        (0x2B820, 0x2CEAF), (0x2CEB0, 0x2EBEF), (0x30000, 0x3134F), (0xF900, 0xFAFF), (0x2F800, 0x2FA1F),
    
        # 中日韩统一汉字 小扩展(其实仔细看一看就能发现,已经完全被上面的大范围所覆盖)
        (0x9FA6, 0x9FB3), (0x9FB4, 0x9FBB), (0x9FBC, 0x9FC2), (0x9FC3, 0x9FC3), (0x9FC4, 0x9FC6), (0x9FC7, 0x9FCB),
        (0x9FCC, 0x9FCC), (0x9FCD, 0x9FCF), (0x9FD0, 0x9FD0), (0x9FD1, 0x9FD5), (0x9FD6, 0x9FE9), (0x9FEA, 0x9FEA),
        (0x9FEB, 0x9FED), (0x9FEE, 0x9FEF), (0x9FF0, 0x9FFC), (0x4DB6, 0x4DBF), (0x2A6D7, 0x2A6DD),
    
        # 日文假名(平假名、片假名)
        # [\p{Hiragana}\p{Kannada}]
        (0x3040, 0x309F), (0x30A0, 0x30FF), (0x31F0, 0x31FF), (0x1B130, 0x1B16F), (0x1B000, 0x1B0FF), (0x1B100, 0x1B12F),
    
        # 韩文谚文(训民正音)
        # \p{Hangul}
        (0x1100, 0x11FF), (0xA960, 0xA97F), (0xD7B0, 0xD7FF), (0x3130, 0x318F), (0xAC00, 0xD7A3),
    )
    
  • @Ta / 06-22 00:49 / /

    @老虎会游泳,看来还是有必要深入一下Unicode,了解的还是太浅了

  • @Ta / 06-22 00:57 / /

    秦始皇的梦想

  • @Ta / 06-22 00:57 / /
    这个问题我以前问过,但是是在公共聊天室里问的,而且老虎详细的解答过,
  • @Ta / 06-22 10:37 / /

    @无名啊,测试文本,证明了\p{Han}的正确性(高亮为匹配的内容):

    Screenshot_20220622_010254.jpg

    https://regex101.com/

    大龙,老虎!🐲?零。〇、喵…一·①。
    あいうえおぁぃぅぇぉかきけこが
    アイウエオァィゥェォカキクケコガ
    丨亅丿丿乛一乙丶八勹匕冫卜厂刀刂儿
    테스트 호랑이는 수영할 수 있습니다 이것은 호랑이가 수영할 수 있습니다
    
  • @Ta / 06-22 10:37 / /

    Screenshot_20220622_010936.jpg

    https://regex101.com/

    日语译文来自谷歌翻译。

    日语的日常书写中会出现汉字。汉字是日语书写中不可缺少的部分。日语汉字也是汉字。只有假名的日语是不完整的。
    
    漢字は日常の日本語で書かれています。 漢字は日本語の書き方に欠かせないものです。 日本の漢字も漢字です。 かなだけの日本語は不完全です。
    
  • @Ta / 06-22 06:59 / /
    @老虎会游泳,这样子啊
  • @Ta / 06-22 07:47 / /
    @无名啊,内信都是自己删除帖子留下的,,当然也有好多人内信我
  • @Ta / 06-22 09:46 / /

    我记得新华字典里有这个字
    小米MIX2s(白)

  • @Ta / 06-22 10:15 / /

    @-卧龙凤雏-@无名啊,虎绿林已经修改了汉字匹配方式,现在中日韩统一汉字(Unihan)中的所有字符都可以用于用户名了,也包括“〇”。

    static function 匹配汉字($str, $extra = '')
    {
        $preg = '/^[\p{Han}' . $extra . ']+$/u';
        return preg_match($preg, $str);
    }
    
  • @Ta / 06-22 10:23 / /
  • @Ta / 06-22 12:15 / /

    @老虎会游泳,好家伙,会不会在林子里掀起一股日文韩文名风潮。。

    我听说有一些同形字,不怕混淆了吗?比如:

    • 凉凉
    • 墫壿
    • 樂樂樂樂
  • @Ta / 06-22 12:16 / /
    @水木易安,我也记得小时候看见过
  • @Ta / 06-22 12:57 / /

    @无名啊

    会不会在林子里掀起一股日文韩文名风潮

    1. 日语平假名(\p{Hiragana})、片假名(\p{Kannada})和韩语谚文(\p{Hangul})都不属于汉字(\p{Han})。

    2. 普通人不查表很难区分某个Unicode汉字是哪个国家的常用字(只是在这个国家常用,不代表另一个国家完全不使用)。

    3. 很多日本人、韩国人的名字都在[\x{4e00}-\x{9fa5}]范围内,不需要本次更新就可以实现:

      • 工藤新一 "\u5de5\u85e4\u65b0\u4e00"
      • 小島秀夫 "\u5c0f\u5cf6\u79c0\u592b"
      • 宮崎英高 "\u5bae\u5d0e\u82f1\u9ad8"
      • 矢野浩二 "\u77e2\u91ce\u6d69\u4e8c"

    这就像“日本語”这三个字也在[\x{4e00}-\x{9fa5}]范围内一样。你没有看错,这个词在日本就写作“日本語”,除了儿童读物,其他地方都不会写作假名“にほんご”,而假名也不属于\p{Han}

    图片.png

    图片.png

    https://regex101.com/

  • @Ta / 06-22 12:59 / /

    @老虎会游泳,噢,又忘了,不包括平假片假还有纯韩语(叫“谚文”是吧?ok~)

  • @Ta / 06-22 14:09 / /

    @无名啊

    我听说有一些同形字,不怕混淆了吗
    

    如果真的引起困扰,我会对用户名进行Unicode规范化。(已进行

    https://xobo.org/unicode-normalization-nfd-nfc-nfkd-nfkc/

    https://www.php.net/manual/zh/class.normalizer.php

  • @Ta / 06-22 13:02 / /

    @老虎会游泳,同形字咋办?刚测试,全部能通过\p{Han}

  • @Ta / 06-22 13:18 / /

    @无名啊,Unicode规范化函数可以把字符的所有表现形式转换成唯一表现形式。

    Normalizer::normalize($str)
    

    https://zhuanlan.zhihu.com/p/363841066

  • @Ta / 06-22 13:23 / /

    @老虎会游泳,我试了下,“墫壿”没办法?

    $s = "\u{58ab}\u{58ff}";
    $a = Normalizer::normalize($s, Normalizer::FORM_C);
    $b = Normalizer::normalize($s, Normalizer::FORM_KC);
    
  • @Ta / 06-22 14:34 / /
添加新回复
回复需要登录