zoukankan      html  css  js  c++  java
  • 神奇的字符

    如果你看不到文章的图的话,可以去:你看不见图的话,去http://www.guokr.com/question/162799/
    http://www.guokr.com/post/206023/

    ---------------------------

    今天是世界无烟日好像,在微薄上发现了这个神奇的字符(̅_̅_̅(̅(̅_̅_̅_̅_̅_̅̅(ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็)

    我一开始以为他是一张图片,最后发现不是,而且观察了一会,发现居然还能动好像,于是就觉的很神奇。这个确实是一个字符串。

    如果你用微薄的话,你可以尝试着在输入框中写入:“ฐ้้ฐ้้้ฐ้้้้ฐ้้้้้ฐ้้้้้้ฐ้้้้้้้ฐ้้้้้้้้ฐ้้้้้้้้้ฐ้้้้้้้้้้ฐ้้้้้้้้้้้ฐ้้้้้้้้้้้้ฐ้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้”,你就会发现远远超出了140个字符了。

    你如果用google搜索:(̅_̅_̅(̅(̅_̅_̅_̅_̅_̅̅(ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็) 你会发现页面很奇怪。

    (็和ฐ้้,这两个“字符”其实都不只是一个字符。出现这个状况,大概就是设计字符时没有考虑到“帽子”和“声调”而产生的BUG。

    这是泰文字符中的帽子字,它会叠加在主体字符上,出这个状况是字符bug

    根据泰文的拼写规则,常将字符分为鞋子字符、帽子字符、主体字符、声调字符、独立字符、标点字符。【1】
    图示中的 ส 编码为0E2A、即主体字符;所谓的“绕绕(็)“编码为0E47、即帽子字符。【2】
    按照拼写规则,,帽子字符必须是叠加在主体字符之上的。因此,正常的泰文拼写应该是像”ส็“这样。
    至于发射过远,应该是泰文编码时设计者未考虑到重复叠加”帽子“或者”声调“而产生的BUG。毕竟,主体字符上是可以叠加帽子字符的,帽子字符上又是可以叠加声调字符;再者,主体字符下还可以叠加鞋子字符,确实难以限定叠加层数。



    至于如何显示,主体字符的Unicode 编码+声调字符(或者帽子字符)的Unicode 编码即可。比如答案开始的图形编码为:http://wo.tanbeta.com/?di=8LH8

    【1】泰文排版规则:http://blog.sina.com.cn/s/blog_5d8cc6410100s2ux.html
    【2】泰文(Thai) Unicode 编码表:http://www.nengcha.com/code/unicode/class/31/

    把这个字符复制到word里,默认字体显示的是“Tahoma”。


    我注意到很奇怪的一点,就是其他字符如果复制的话,会一下选中整个字符,而这个字符却可以选中一部分。如图,说明这个字符可能包含多个字符。


    然后我试着改变字体,结果发现大多数字体都无法应用,最终发现少数可以用的字体,这才瞬间发现,原来这个字符的确是包含多个字符。

    比如应用Symbol字体:


    Webdings字体:


    Wingdings


    而且有趣的是,当你在以上这些字体下,增加或者减少第二个图案的数量,再切换到Tahoma字体,并不会影响这个字符。

    推测这可能是Tahoma字体在处理特殊字符时产生的一个小bug。。。。。

    这个效果主要是利用 Unicode U+0300 到 U+03FF 区的组合标记 (combining marks) 实现的,这些标记本身没有水平 advance,只会重叠在前一个非 combining mark 的字符上。

    比如这里,其实组成就是首先一个 U+002E,也就是 .,然后放一堆 U+0338,也就是你看到的斜杠,这个斜杠也叫 NON-SPACING LONG SLASH OVERLAY,就是负责重叠在一起用的,它没有垂直 advance 也没有水平 advance,所以后一个字符总是会叠在前一个上面,越叠越黑;然后接着用 U+0328,也就是延伸到下面的一圈圈的图案,每个是其中的一环,这个字符叫 COMBINING OGONEK,它有垂直 advance 但没有水平 advance,所以后一个字符会接在前一个的下面而不是后面。第二组的原理是一样的,也是先放一个 . 然后接多个 U+0338 和 U+0328。
    ==============================
    这是堆在一起的 3 种字符:
    U+002E FULL STOP(就是西文句点)
    U+0338 COMBINING LONG SOLIDUS OVERLAY(是用于和其他字符组合显示的 solidus,用于分数或金额的斜线 [1],我们一般都用 slash)
    U+0328 COMBINING OGONEK(这是用于用于和拉丁字母组合显示的变音符号 [2])

    一共有 2 个 U+002E,26 个 U+0338 和 14 个 U+0328:
    U+002E U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0338 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+0328 U+002E U+0338 U+0338 U+0328 U+0328

    U+0338 和 U+0328 都是用于「和其他字符组合显示的」字符,所以它们会附着在前一个字符上,它们的位置是相对于前一个字符来确定的。
    所以,以 U+002E 为基础,后面的 U+0338 和 U+0328 都依次附着在前一个字符上,就成这样了。其它很多用特殊字符玩的奇怪图形的原理基本也都是这样。
    ==============================
    所以说这其实不是“一个字符”,而是叠在一起的好多个字符,这一点从 google 的提示中也可以以看出来:“你的查询太冗长,请换较短字词再试”。另外还可以试试把这个东西粘贴到任何地方,然后用 backspace 键删掉,你会发现需要按大概 59 下才能删掉。

    【以下为游戏测试区】全选下面的字符,上下左右拖拽鼠标试试?……上班的时候就用这个来代替切水果吧 = =
    想玩更多,或者看别人做出的奇葩图案,来这里:http://www.guokr.com/post/206023/
    ————————————————————————————————





    ฐ้้ฐ้้้ฐ้้้้ฐ้้้้้ฐ้้้้้้ฐ้้้้้้้ฐ้้้้้้้้ฐ้้้้้้้้้ฐ้้้้้้้้้้ฐ้้้้้้้้้้้ฐ้้้้้้้้้้้้ฐ้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้ฐ้้้้้้้้้ฐ้้้้้้้้้้ฐ้้้้้้้้้้้ฐ้้้้้้้้้้้้ฐ้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้





    ฐ้้ฐ้้้ฐ้้้้ฐ้้้้้ฐ้้้้้้ฐ้้้้้้้ฐ้้้้้้้้ฐ้้้้้้้้้ฐ้้้้้้้้้้ฐ้้้้้้้้้้้ฐ้้้้้้้้้้้้ฐ้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้ฐ้้้้้้้้้ฐ้้้้้้้้้้ฐ้้้้้้้้้้้ฐ้้้้้้้้้้้้ฐ้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้ฐ้้้้้้้้้้้้้้้้้้้้้้้้้้้้้

    —————————————————————————————

    你们能切成这样吗> <!

     

    最后注明:本文参考自微博,果壳网,互联网。

  • 相关阅读:
    java线程读取文件,可以同时读写 202006031002
    JS,JQuery bug202005282020
    js,jquery缩小加载的图片202005131907
    spring boot/spring cloud + mybatis + mysql bug 20200513
    html2020042901,table元素之间的间距
    ie8-ie11浏览器bug2020042801
    css的bug2020042801
    xml读取解析bug20200423
    Poi读取word(doc)文档的文本或图片
    NOI2020专题
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2528781.html
Copyright © 2011-2022 走看看