【问题标题】:problem with my custom function `json_stringify` in `awk``awk`中我的自定义函数`json_stringify`有问题
【发布时间】:2022-09-23 02:07:48
【问题描述】:

我编写了一个 shell 函数,它使用 awkUTF-8 编码字符串转换为 JSON 字符串。

json_stringify() {

    LANG=C awk \'

        BEGIN {
            for ( i = 1; i < ARGC; i++ )
                print json_stringify(ARGV[i])
        }

        function json_stringify( str, _str, _out ) {

            if( ! (\"\\\\\" in _ESC_) )
                for ( i = 1; i <= 127; i++ )
                    _ESC_[ sprintf( \"%c\", i) ] = sprintf( \"\\\\u%04x\", i )

            _str = str
            _out = \"\\\"\"

            while ( match( _str, /[\\\"\\\\[:cntrl:]]/ ) ) {
                _out = _out substr(_str,1,RSTART-1) _ESC_[substr(_str,RSTART,RLENGTH)]
                _str = substr( _str, RSTART + RLENGTH )
            }

            return _out _str \"\\\"\"
        }
    \' \"$@\"
}

感觉就像我错过了一些微不足道的事情,因为当我运行时(在 bash 中):

json_stringify \'A\"B\' \'C\\D\' $\'\\b \\f \\t \\r \\n\'

我得到:

\"A\\u0022B\"

而我的预期输出是:

\"A\\u0022B\"
\"C\\u005cD\"
\"\\u0008 \\u000c \\u0009 \\u000d \\u000a\"

我的代码中可能有什么问题?

    标签: json bash awk scope bsd


    【解决方案1】:

    我看到的一个问题是在BEGIN/for 循环和function/for 循环中双重使用i 作为循环变量,并且因为i 在函数中没有被声明为“本地”,所以你最终得到的只是i 的一个实例用于整个脚本。最终结果是函数将i 推送到127,这远远超出ARGC,因此BEGIN 块仅循环一次(i=1),因为在第二个循环i=127

    两个可能的修复:

    i 声明为函数的本地,例如:

    function json_stringify( str, _str, _out, i ) {
    

    或在其中一个循环中使用不同的循环变量(例如,j),例如:

    # in the BEGIN block:
    
    for ( j = 1; j < ARGC; j++ )
        print json_stringify(ARGV[j])
    
    # or in the function:
    
    for ( j = 1; j <= 127; j++ )
         _ESC_[ sprintf( "%c", j) ] = sprintf( "\\u%04x", j )
    

    测试每个可能的修复可以让我生成:

    "A\u0022B"
    "C\u005cD"
    "\u0008 \u000c \u0009 \u000d \u000a"
    

    Controlling Variable Scope - 关于这个话题的简短讨论。

    【讨论】:

    • 谢谢markp-fuso,我完全忽略了i 变量。现在代码可以在 GNU awk 上正常工作,但我在旧版 BSD 上遇到了一个奇怪的问题(请参阅 stackoverflow.com/q/73778696/3387716
    【解决方案2】:

    如果UTF-8 输入字符串不包含任何NUL 字节,则这是一个可以与任何符合POSIX 的系统一起使用的shell 函数:

    json_stringify() {
    
        LANG=C awk '
    
            BEGIN {
                for ( i = 1; i < ARGC; i++ )
                    print json_stringify(ARGV[i])
            }
    
            function json_stringify( str, _str, _out, _i) {
    
                if( ! ("\\" in _ESC_) )
                    for ( _i = 1; _i <= 127; _i++ )
                        _ESC_[ sprintf( "%c", _i) ] = sprintf( "\\u%04x", _i )
    
                _str = str
                _out = "\""
    
                while ( match( _str, /[\001-\037\042\134\177]/ ) ) {
                    _out = _out substr(_str,1,RSTART-1) _ESC_[substr(_str,RSTART,RLENGTH)]
                    _str = substr( _str, RSTART + RLENGTH )
                }
    
                return _out _str "\""
            }
        ' "$@"
    }
    
    json_stringify "$@"
    

    评论:我已经定义了 awk 函数 json_stringify 因为有时你可能想要 JSON 转义参数中的字符串(如这里),有时你可能想要参数中文件的内容等等......可以用于您拥有的任何用例可能是最通用的解决方案。


    在旁边:我不会转义非 BMP 字符(并计算它们的 UTF-16 代理对),因为 RFC 不需要它:

    所有 Unicode 字符都可以放在引号内,除了必须转义的字符:引号、反斜线和控制字符(U+0000U+001F)。

    【讨论】:

      【解决方案3】:

      @Fravadona:这是一种轻松映射所有字节的简单方法-不会生成/抑制单个错误/警告消息

      • ordU8[] 返回的链的第一个整数是预先计算的偏移量,以简化从其组成字节对UTF-8 代码点的反向计算:

      • \b\t\n\v\f\r\033\177 的行看起来错乱了,因为它们的底层字节正在做他们定义要做的事情

      .

      LANG='en_US.UTF-8' LC_ALL='en_US.UTF-8' gawk -e '
      
      function ordU8_util(__,____,_,___) {
          return \
          sprintf("%7.f:%3.f:%%%.2X:\\%.3o:%+.f",
               __=((____=__=((__%(_^=_+=___=_+=_^=_<_))+_+_)%_)*___)<_ \
                   ? +__ : (__+(_=___*___)*_*_)<_^_ ? __%_^--_ \
               : (_*_+__+_*_)<_^_ \
                   ? (((_*--_+--_)^_)<=(__+_))*\
                     (_+=_)*(_*=_)*(__%(_+=_)) \
               : (--__<=(--_*_^++_))*(_^--_)^(_++\
                    -((++__+(_*=_))<(_*_)))*(__%_), 
            (__=____%(_^=_+=_+=_^=_<_)),__,__,__-_)
      }
      function initByte2Any(_,__) {
         __=_=""
         for(_ in byte2any) {
            break
         }
         if ( ! (_ in byte2any)) {
            _-=(\
            __=(_+=_^=_<_)*++_^_++*_*(_^=_))^!_
            do {
                ordU8[sprintf("%c",__+_)\
                       ] = ordU8_util(_) } while(_--)
         }
         return
      }
      BEGIN {
          PROCINFO["sorted_in"] = "@ind_str_asc" (__="")
          initByte2Any()
          for (_ in ordU8) {
              print ___, "{-{-{ " (_) " }-}-}", 
                   "cntrl ? :" (_ ~ "[[:cntrl:]]"), 
                   "graph ? :" (_ ~ "[[:graph:]]"), 
                   "punct ? :" (_ ~ "[[:punct:]]"), ordU8[_]
           }
      }'
      

      |

       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       0:  0:%00:\000:-256
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       1:  1:%01:\001:-255
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       2:  2:%02:\002:-254
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       3:  3:%03:\003:-253
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       4:  4:%04:\004:-252
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       5:  5:%05:\005:-251
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       6:  6:%06:\006:-250
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0       7:  7:%07:\007:-249
       {-{-{ }-}-} cntrl ? :1 graph ? :0 punct ? :0       8:  8:%08:\010:-248
       {-{-{   }-}-} cntrl ? :1 graph ? :0 punct ? :0       9:  9:%09:\011:-247
       {-{-{ 
       }-}-} cntrl ? :1 graph ? :0 punct ? :0      10: 10:%0A:\012:-246
       {-{-{ 
              }-}-} cntrl ? :1 graph ? :0 punct ? :0      11: 11:%0B:\013:-245
       {-{-{ 
              }-}-} cntrl ? :1 graph ? :0 punct ? :0      12: 12:%0C:\014:-244
       }-}-} cntrl ? :1 graph ? :0 punct ? :0      13: 13:%0D:\015:-243
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      14: 14:%0E:\016:-242
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      15: 15:%0F:\017:-241
      
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      16: 16:%10:\020:-240
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      17: 17:%11:\021:-239
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      18: 18:%12:\022:-238
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      19: 19:%13:\023:-237
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      20: 20:%14:\024:-236
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      21: 21:%15:\025:-235
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      22: 22:%16:\026:-234
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      23: 23:%17:\027:-233
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      24: 24:%18:\030:-232
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      25: 25:%19:\031:-231
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      26: 26:%1A:\032:-230
       {-{-{ }-}-} cntrl ? :1 graph ? :0 punct ? :0      27: 27:%1B:\033:-229
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      28: 28:%1C:\034:-228
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      29: 29:%1D:\035:-227
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      30: 30:%1E:\036:-226
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0      31: 31:%1F:\037:-225
      
       {-{-{   }-}-} cntrl ? :0 graph ? :0 punct ? :0      32: 32:%20:\040:-224
       {-{-{ ! }-}-} cntrl ? :0 graph ? :1 punct ? :1      33: 33:%21:\041:-223
       {-{-{ '"' }-}-} cntrl ? :0 graph ? :1 punct ? :1      34: 34:%22:\042:-222
       {-{-{ # }-}-} cntrl ? :0 graph ? :1 punct ? :1      35: 35:%23:\043:-221
       {-{-{ $ }-}-} cntrl ? :0 graph ? :1 punct ? :1      36: 36:%24:\044:-220
       {-{-{ % }-}-} cntrl ? :0 graph ? :1 punct ? :1      37: 37:%25:\045:-219
       {-{-{ & }-}-} cntrl ? :0 graph ? :1 punct ? :1      38: 38:%26:\046:-218
       {-{-{ "'" }-}-} cntrl ? :0 graph ? :1 punct ? :1      39: 39:%27:\047:-217
       {-{-{ ( }-}-} cntrl ? :0 graph ? :1 punct ? :1      40: 40:%28:\050:-216
       {-{-{ ) }-}-} cntrl ? :0 graph ? :1 punct ? :1      41: 41:%29:\051:-215
       {-{-{ * }-}-} cntrl ? :0 graph ? :1 punct ? :1      42: 42:%2A:\052:-214
       {-{-{ + }-}-} cntrl ? :0 graph ? :1 punct ? :1      43: 43:%2B:\053:-213
       {-{-{ , }-}-} cntrl ? :0 graph ? :1 punct ? :1      44: 44:%2C:\054:-212
       {-{-{ - }-}-} cntrl ? :0 graph ? :1 punct ? :1      45: 45:%2D:\055:-211
       {-{-{ . }-}-} cntrl ? :0 graph ? :1 punct ? :1      46: 46:%2E:\056:-210
       {-{-{ / }-}-} cntrl ? :0 graph ? :1 punct ? :1      47: 47:%2F:\057:-209
      
       {-{-{ 0 }-}-} cntrl ? :0 graph ? :1 punct ? :0      48: 48:%30:\060:-208
       {-{-{ 1 }-}-} cntrl ? :0 graph ? :1 punct ? :0      49: 49:%31:\061:-207
       {-{-{ 2 }-}-} cntrl ? :0 graph ? :1 punct ? :0      50: 50:%32:\062:-206
       {-{-{ 3 }-}-} cntrl ? :0 graph ? :1 punct ? :0      51: 51:%33:\063:-205
       {-{-{ 4 }-}-} cntrl ? :0 graph ? :1 punct ? :0      52: 52:%34:\064:-204
       {-{-{ 5 }-}-} cntrl ? :0 graph ? :1 punct ? :0      53: 53:%35:\065:-203
       {-{-{ 6 }-}-} cntrl ? :0 graph ? :1 punct ? :0      54: 54:%36:\066:-202
       {-{-{ 7 }-}-} cntrl ? :0 graph ? :1 punct ? :0      55: 55:%37:\067:-201
       {-{-{ 8 }-}-} cntrl ? :0 graph ? :1 punct ? :0      56: 56:%38:\070:-200
       {-{-{ 9 }-}-} cntrl ? :0 graph ? :1 punct ? :0      57: 57:%39:\071:-199
       {-{-{ : }-}-} cntrl ? :0 graph ? :1 punct ? :1      58: 58:%3A:\072:-198
       {-{-{ ; }-}-} cntrl ? :0 graph ? :1 punct ? :1      59: 59:%3B:\073:-197
       {-{-{ < }-}-} cntrl ? :0 graph ? :1 punct ? :1      60: 60:%3C:\074:-196
       {-{-{ = }-}-} cntrl ? :0 graph ? :1 punct ? :1      61: 61:%3D:\075:-195
       {-{-{ > }-}-} cntrl ? :0 graph ? :1 punct ? :1      62: 62:%3E:\076:-194
       {-{-{ ? }-}-} cntrl ? :0 graph ? :1 punct ? :1      63: 63:%3F:\077:-193
      
       {-{-{ @ }-}-} cntrl ? :0 graph ? :1 punct ? :1      64: 64:%40:\100:-192
       {-{-{ A }-}-} cntrl ? :0 graph ? :1 punct ? :0      65: 65:%41:\101:-191
       {-{-{ B }-}-} cntrl ? :0 graph ? :1 punct ? :0      66: 66:%42:\102:-190
       {-{-{ C }-}-} cntrl ? :0 graph ? :1 punct ? :0      67: 67:%43:\103:-189
       {-{-{ D }-}-} cntrl ? :0 graph ? :1 punct ? :0      68: 68:%44:\104:-188
       {-{-{ E }-}-} cntrl ? :0 graph ? :1 punct ? :0      69: 69:%45:\105:-187
       {-{-{ F }-}-} cntrl ? :0 graph ? :1 punct ? :0      70: 70:%46:\106:-186
       {-{-{ G }-}-} cntrl ? :0 graph ? :1 punct ? :0      71: 71:%47:\107:-185
       {-{-{ H }-}-} cntrl ? :0 graph ? :1 punct ? :0      72: 72:%48:\110:-184
       {-{-{ I }-}-} cntrl ? :0 graph ? :1 punct ? :0      73: 73:%49:\111:-183
       {-{-{ J }-}-} cntrl ? :0 graph ? :1 punct ? :0      74: 74:%4A:\112:-182
       {-{-{ K }-}-} cntrl ? :0 graph ? :1 punct ? :0      75: 75:%4B:\113:-181
       {-{-{ L }-}-} cntrl ? :0 graph ? :1 punct ? :0      76: 76:%4C:\114:-180
       {-{-{ M }-}-} cntrl ? :0 graph ? :1 punct ? :0      77: 77:%4D:\115:-179
       {-{-{ N }-}-} cntrl ? :0 graph ? :1 punct ? :0      78: 78:%4E:\116:-178
       {-{-{ O }-}-} cntrl ? :0 graph ? :1 punct ? :0      79: 79:%4F:\117:-177
      
       {-{-{ P }-}-} cntrl ? :0 graph ? :1 punct ? :0      80: 80:%50:\120:-176
       {-{-{ Q }-}-} cntrl ? :0 graph ? :1 punct ? :0      81: 81:%51:\121:-175
       {-{-{ R }-}-} cntrl ? :0 graph ? :1 punct ? :0      82: 82:%52:\122:-174
       {-{-{ S }-}-} cntrl ? :0 graph ? :1 punct ? :0      83: 83:%53:\123:-173
       {-{-{ T }-}-} cntrl ? :0 graph ? :1 punct ? :0      84: 84:%54:\124:-172
       {-{-{ U }-}-} cntrl ? :0 graph ? :1 punct ? :0      85: 85:%55:\125:-171
       {-{-{ V }-}-} cntrl ? :0 graph ? :1 punct ? :0      86: 86:%56:\126:-170
       {-{-{ W }-}-} cntrl ? :0 graph ? :1 punct ? :0      87: 87:%57:\127:-169
       {-{-{ X }-}-} cntrl ? :0 graph ? :1 punct ? :0      88: 88:%58:\130:-168
       {-{-{ Y }-}-} cntrl ? :0 graph ? :1 punct ? :0      89: 89:%59:\131:-167
       {-{-{ Z }-}-} cntrl ? :0 graph ? :1 punct ? :0      90: 90:%5A:\132:-166
       {-{-{ [ }-}-} cntrl ? :0 graph ? :1 punct ? :1      91: 91:%5B:\133:-165
       {-{-{ \ }-}-} cntrl ? :0 graph ? :1 punct ? :1      92: 92:%5C:\134:-164
       {-{-{ ] }-}-} cntrl ? :0 graph ? :1 punct ? :1      93: 93:%5D:\135:-163
       {-{-{ ^ }-}-} cntrl ? :0 graph ? :1 punct ? :1      94: 94:%5E:\136:-162
       {-{-{ _ }-}-} cntrl ? :0 graph ? :1 punct ? :1      95: 95:%5F:\137:-161
      
       {-{-{ ` }-}-} cntrl ? :0 graph ? :1 punct ? :1      96: 96:%60:\140:-160
       {-{-{ a }-}-} cntrl ? :0 graph ? :1 punct ? :0      97: 97:%61:\141:-159
       {-{-{ b }-}-} cntrl ? :0 graph ? :1 punct ? :0      98: 98:%62:\142:-158
       {-{-{ c }-}-} cntrl ? :0 graph ? :1 punct ? :0      99: 99:%63:\143:-157
       {-{-{ d }-}-} cntrl ? :0 graph ? :1 punct ? :0     100:100:%64:\144:-156
       {-{-{ e }-}-} cntrl ? :0 graph ? :1 punct ? :0     101:101:%65:\145:-155
       {-{-{ f }-}-} cntrl ? :0 graph ? :1 punct ? :0     102:102:%66:\146:-154
       {-{-{ g }-}-} cntrl ? :0 graph ? :1 punct ? :0     103:103:%67:\147:-153
       {-{-{ h }-}-} cntrl ? :0 graph ? :1 punct ? :0     104:104:%68:\150:-152
       {-{-{ i }-}-} cntrl ? :0 graph ? :1 punct ? :0     105:105:%69:\151:-151
       {-{-{ j }-}-} cntrl ? :0 graph ? :1 punct ? :0     106:106:%6A:\152:-150
       {-{-{ k }-}-} cntrl ? :0 graph ? :1 punct ? :0     107:107:%6B:\153:-149
       {-{-{ l }-}-} cntrl ? :0 graph ? :1 punct ? :0     108:108:%6C:\154:-148
       {-{-{ m }-}-} cntrl ? :0 graph ? :1 punct ? :0     109:109:%6D:\155:-147
       {-{-{ n }-}-} cntrl ? :0 graph ? :1 punct ? :0     110:110:%6E:\156:-146
       {-{-{ o }-}-} cntrl ? :0 graph ? :1 punct ? :0     111:111:%6F:\157:-145
      
       {-{-{ p }-}-} cntrl ? :0 graph ? :1 punct ? :0     112:112:%70:\160:-144
       {-{-{ q }-}-} cntrl ? :0 graph ? :1 punct ? :0     113:113:%71:\161:-143
       {-{-{ r }-}-} cntrl ? :0 graph ? :1 punct ? :0     114:114:%72:\162:-142
       {-{-{ s }-}-} cntrl ? :0 graph ? :1 punct ? :0     115:115:%73:\163:-141
       {-{-{ t }-}-} cntrl ? :0 graph ? :1 punct ? :0     116:116:%74:\164:-140
       {-{-{ u }-}-} cntrl ? :0 graph ? :1 punct ? :0     117:117:%75:\165:-139
       {-{-{ v }-}-} cntrl ? :0 graph ? :1 punct ? :0     118:118:%76:\166:-138
       {-{-{ w }-}-} cntrl ? :0 graph ? :1 punct ? :0     119:119:%77:\167:-137
       {-{-{ x }-}-} cntrl ? :0 graph ? :1 punct ? :0     120:120:%78:\170:-136
       {-{-{ y }-}-} cntrl ? :0 graph ? :1 punct ? :0     121:121:%79:\171:-135
       {-{-{ z }-}-} cntrl ? :0 graph ? :1 punct ? :0     122:122:%7A:\172:-134
       {-{-{ { }-}-} cntrl ? :0 graph ? :1 punct ? :1     123:123:%7B:\173:-133
       {-{-{ | }-}-} cntrl ? :0 graph ? :1 punct ? :1     124:124:%7C:\174:-132
       {-{-{ } }-}-} cntrl ? :0 graph ? :1 punct ? :1     125:125:%7D:\175:-131
       {-{-{ ~ }-}-} cntrl ? :0 graph ? :1 punct ? :1     126:126:%7E:\176:-130
       {-{-{  }-}-} cntrl ? :1 graph ? :0 punct ? :0     127:127:%7F:\177:-129
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:128:%80:\200:-128
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       1:129:%81:\201:-127
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       2:130:%82:\202:-126
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       3:131:%83:\203:-125
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       4:132:%84:\204:-124
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       5:133:%85:\205:-123
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       6:134:%86:\206:-122
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       7:135:%87:\207:-121
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       8:136:%88:\210:-120
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       9:137:%89:\211:-119
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      10:138:%8A:\212:-118
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      11:139:%8B:\213:-117
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      12:140:%8C:\214:-116
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      13:141:%8D:\215:-115
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      14:142:%8E:\216:-114
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      15:143:%8F:\217:-113
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      16:144:%90:\220:-112
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      17:145:%91:\221:-111
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      18:146:%92:\222:-110
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      19:147:%93:\223:-109
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      20:148:%94:\224:-108
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      21:149:%95:\225:-107
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      22:150:%96:\226:-106
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      23:151:%97:\227:-105
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      24:152:%98:\230:-104
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      25:153:%99:\231:-103
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      26:154:%9A:\232:-102
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      27:155:%9B:\233:-101
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      28:156:%9C:\234:-100
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      29:157:%9D:\235:-99
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      30:158:%9E:\236:-98
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      31:159:%9F:\237:-97
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      32:160:%A0:\240:-96
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      33:161:%A1:\241:-95
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      34:162:%A2:\242:-94
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      35:163:%A3:\243:-93
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      36:164:%A4:\244:-92
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      37:165:%A5:\245:-91
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      38:166:%A6:\246:-90
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      39:167:%A7:\247:-89
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      40:168:%A8:\250:-88
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      41:169:%A9:\251:-87
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      42:170:%AA:\252:-86
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      43:171:%AB:\253:-85
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      44:172:%AC:\254:-84
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      45:173:%AD:\255:-83
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      46:174:%AE:\256:-82
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      47:175:%AF:\257:-81
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      48:176:%B0:\260:-80
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      49:177:%B1:\261:-79
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      50:178:%B2:\262:-78
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      51:179:%B3:\263:-77
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      52:180:%B4:\264:-76
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      53:181:%B5:\265:-75
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      54:182:%B6:\266:-74
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      55:183:%B7:\267:-73
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      56:184:%B8:\270:-72
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      57:185:%B9:\271:-71
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      58:186:%BA:\272:-70
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      59:187:%BB:\273:-69
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      60:188:%BC:\274:-68
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      61:189:%BD:\275:-67
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      62:190:%BE:\276:-66
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0      63:191:%BF:\277:-65
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:192:%C0:\300:-64
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:193:%C1:\301:-63
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     128:194:%C2:\302:-62
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     192:195:%C3:\303:-61
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     256:196:%C4:\304:-60
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     320:197:%C5:\305:-59
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     384:198:%C6:\306:-58
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     448:199:%C7:\307:-57
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     512:200:%C8:\310:-56
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     576:201:%C9:\311:-55
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     640:202:%CA:\312:-54
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     704:203:%CB:\313:-53
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     768:204:%CC:\314:-52
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     832:205:%CD:\315:-51
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     896:206:%CE:\316:-50
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0     960:207:%CF:\317:-49
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1024:208:%D0:\320:-48
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1088:209:%D1:\321:-47
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1152:210:%D2:\322:-46
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1216:211:%D3:\323:-45
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1280:212:%D4:\324:-44
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1344:213:%D5:\325:-43
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1408:214:%D6:\326:-42
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1472:215:%D7:\327:-41
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1536:216:%D8:\330:-40
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1600:217:%D9:\331:-39
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1664:218:%DA:\332:-38
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1728:219:%DB:\333:-37
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1792:220:%DC:\334:-36
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1856:221:%DD:\335:-35
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1920:222:%DE:\336:-34
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    1984:223:%DF:\337:-33
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:224:%E0:\340:-32
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    4096:225:%E1:\341:-31
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0    8192:226:%E2:\342:-30
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   12288:227:%E3:\343:-29
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   16384:228:%E4:\344:-28
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   20480:229:%E5:\345:-27
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   24576:230:%E6:\346:-26
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   28672:231:%E7:\347:-25
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   32768:232:%E8:\350:-24
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   36864:233:%E9:\351:-23
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   40960:234:%EA:\352:-22
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   45056:235:%EB:\353:-21
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   49152:236:%EC:\354:-20
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   53248:237:%ED:\355:-19
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   57344:238:%EE:\356:-18
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0   61440:239:%EF:\357:-17
      
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:240:%F0:\360:-16
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0  262144:241:%F1:\361:-15
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0  524288:242:%F2:\362:-14
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0  786432:243:%F3:\363:-13
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0 1048576:244:%F4:\364:-12
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:245:%F5:\365:-11
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:246:%F6:\366:-10
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:247:%F7:\367:-9
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:248:%F8:\370:-8
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:249:%F9:\371:-7
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:250:%FA:\372:-6
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:251:%FB:\373:-5
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:252:%FC:\374:-4
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:253:%FD:\375:-3
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:254:%FE:\376:-2
       {-{-{ ? }-}-} cntrl ? :0 graph ? :0 punct ? :0       0:255:%FF:\377:-1
      

      【讨论】:

        猜你喜欢
        • 2015-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-06
        • 1970-01-01
        • 2014-07-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多