掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1382|回复: 3

[使用求助] AHK鼠标取词,ASCII编码如何判断中文?

[复制链接]
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-2-26 15:27:38 | 显示全部楼层 |阅读模式
    本帖最后由 VimVim 于 2020-2-26 15:48 编辑
    ; L% o4 c( H( @9 t" r9 ^7 U$ z3 r% @5 y
    [9.15]GoldenDict & 欧路 取词完美版(AHK)+ u0 r) ?  S* T3 M, M8 @
    https://www.pdawiki.com/forum/thread-23696-1-1.html& w2 q1 O7 l* t: ~& L. ]  \
    (出处: 掌上百科 - PDAWIKI)
    3 p' I7 H  v2 ]
    8 @2 A1 N+ m/ F: \# B. l$ j@garypang
    3 g0 t+ _5 Z, o# A* B- O
    9 o0 ^" z1 R; o- G6 {1、其中的代码使用 ASCII 编码实现对中文/数字/字符的取词屏蔽,但我需要中文取词,请问如何设置是合理的?2 R, a" x! B$ I* X$ Q% C
    or code > 127 ; 将这一行屏蔽就可以使用中文了吗?
    2 d/ E5 F$ _3 J. K% t注:原始代码中是code > 122,但与or code >= 123 and code <= 126 重叠,而且127不可显示,所以将其更改为code > 127,逻辑上显得更合理# r& h  W4 O- |5 `" B* b
    $ H, W" Y; |3 h( v$ U/ y9 `5 u
    2、为什么第一行使用code < 20 ,而不是 code <= 31?或者干脆不写,反正都看不见。: ]( R0 P9 o2 l6 Q
    我查阅了 https://zh.wikipedia.org/wiki/ASCII ,应该 31及之前都没有意义啊,是因为跟 中文 有关吗?1 T2 ?' U$ h- Z" a- d; [
    ' q2 S+ `$ y6 Y0 i, z' a1 _9 b! W
    1.     len := strlen(clipboard)
      * z) S5 x/ A3 i/ ]! N( J- G3 H7 [' W
    2.     index := 19 c$ u! s( ?$ c9 \6 j5 {
    3.     loop {
      / t) }5 \* g3 @) p  `) ]# H
    4.         ; 剪贴板里不能包含(中文)/数字/特殊字符
      9 p/ i9 X7 p' ~6 ?: @2 b% n* i6 F
    5.         ;
      & B3 A, q; s( z2 S* i6 B5 C
    6.         code := asc( substr(clipboard, index, 1) )
      # V6 O* f3 k1 Z, w* o- }7 `$ K
    7.         if( code < 20
        @  E. S* w- z8 p7 n
    8.             or code >= 33 and code <= 38
      6 d2 H9 ~7 E, B2 K" P
    9.             or code >= 40 and code <= 44. w  M. A5 I5 N: i" T
    10.             or code >= 46 and code <= 64& z6 E9 l' h$ Z8 Y& W# ]
    11.             or code >= 91 and code <= 96
        E) P' z% p. @& Y
    12.             or code > 127  ; 将这一行屏蔽就可以使用中文了吗?) R, m- Q9 z+ I7 P$ J& q
    13.             or code >= 123 and code <= 126 ) {
      / [( A) s' ^5 u: O  p( E. O1 f
    14.             Clipboard := oldClipboard4 g& T2 }5 h: P3 q6 t
    15.             return( S2 R% J/ X! X' b+ x* ]
    16.         }. \6 s9 a' e1 u' o6 E
    17.         ++index
      ' q) G( s- `2 u- P  P# N4 w2 e
    18.         if(index > len)
      ' q* M% S8 A6 q7 {
    19.             break) I- Q. C9 v( v
    20.     }) V4 T+ H  i. @6 \+ x# X
    复制代码
    & D7 d$ W/ d, a# P: X8 F

    # z  l8 {) k: T5 t( w. c$ W5 E5 C, ~5 U! d8 B
  • TA的每日心情
    慵懒
    2023-10-14 18:34
  • 签到天数: 210 天

    [LV.7]常住居民III

    发表于 2020-3-16 08:39:58 | 显示全部楼层
    本帖最后由 deeke 于 2020-3-16 08:43 编辑 3 n& R- \- H# X& O
    $ @0 }, `8 }6 h" f7 L! u1 j
    1. 试试 MsgBox % SubStr("123abc我在哪儿789", 7, 1); 应该显示 "我"。. _. }; x" K+ ?7 e

    5 H. f1 Q! y3 I- }, f) j' F2 ]: Q2. Asc() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode).
    7 L  J; E. S! }) C  S4 ]0 t: `3 {试试 MsgBox, % Asc("我"); & F; F- ?1 i1 A5 O+ R0 v1 R8 u9 ?  ]

    : X) z1 t5 R  R  k% j& d3. Ord() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode) or 0x10000 to 0x10FFFF (for the corresponding Unicode character).
    4 ^$ R, h+ e7 uApart from the Unicode supplementary character detection, Ord() is identical to Asc().& {4 y3 Z3 w+ |' G; y4 ^! J/ |
    试试 MsgBox, % Ord("我") ;' d" J  }& Z" y& h+ q/ t
      ]8 H; k4 D* K4 P- |
    4. "code > 127" 表示所有的编码后超过1字节的字符,比如希腊字母、中日韩文字。
  • TA的每日心情
    无聊
    2022-9-19 16:00
  • 签到天数: 209 天

    [LV.7]常住居民III

    发表于 2020-3-8 03:24:26 | 显示全部楼层
    直接在这一段前面加;不就可以了?
  • TA的每日心情
    奋斗
    2019-10-13 07:34
  • 签到天数: 209 天

    [LV.7]常住居民III

     楼主| 发表于 2020-3-8 09:37:52 | 显示全部楼层
    elisir 发表于 2020-3-8 03:24  y- N. V0 A4 Q- w5 L3 Y) }
    直接在这一段前面加;不就可以了?

    5 U, h- [& v" p% U* d% C& Z感谢回复!但我的问题不是如何注释代码,而是我不知道注释的目标是否正确。. x/ b  i( Z2 k5 }- @
    2 O" P! r# g: m4 i% |/ F9 r
    我的问题如果拆开来看:
    8 |9 ?  M0 {3 \1、"code > 127" 是否就是代表中文?- D% D% \# t, g6 i8 O$ E
    2、还是"code > 127"除了代表中文,还有其他含义?若屏蔽是否会出现副作用?, F- z2 M, b3 @3 V
    3、还是中文不仅仅需要"code > 127",还需要其他,具体是?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2024-4-26 11:29 , Processed in 0.043095 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

    快速回复 返回顶部 返回列表