掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1574|回复: 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 编辑
    7 R5 G" n1 G/ E2 v5 \  u  I8 R* |
    [9.15]GoldenDict & 欧路 取词完美版(AHK)/ Z/ W) X" O5 e2 M) g# @5 T
    https://www.pdawiki.com/forum/thread-23696-1-1.html
    ; ^+ Y8 ?; |0 `, y' j$ r(出处: 掌上百科 - PDAWIKI)
    ! `+ q0 V: N' ~4 U' r! z! v, w- \
    ( K; A2 A6 W6 B  W8 i: B@garypang
    4 K2 Y# K" o9 P% h) c' F2 _5 I6 H0 Y& ]2 x: W/ ~3 @8 }6 l) c9 A
    1、其中的代码使用 ASCII 编码实现对中文/数字/字符的取词屏蔽,但我需要中文取词,请问如何设置是合理的?5 ?- D. u/ y9 h; j
    or code > 127 ; 将这一行屏蔽就可以使用中文了吗?  P: `8 ~6 K' R3 @
    注:原始代码中是code > 122,但与or code >= 123 and code <= 126 重叠,而且127不可显示,所以将其更改为code > 127,逻辑上显得更合理
    % s1 b8 ?7 e- P5 k9 N) k
    / O- A; z  ^7 b
    2、为什么第一行使用code < 20 ,而不是 code <= 31?或者干脆不写,反正都看不见。  N) f! S% y  Q0 R
    我查阅了 https://zh.wikipedia.org/wiki/ASCII ,应该 31及之前都没有意义啊,是因为跟 中文 有关吗?
    : D3 @1 l. X4 t* G% i8 a
    - r! i. B. l  ]$ h. K7 ?* r2 e
    1.     len := strlen(clipboard)# `0 k1 b" z7 k: `3 L
    2.     index := 1
      8 G8 [9 a; [: W. o" {8 {* W/ n
    3.     loop {' Y( n- v$ e# S9 \
    4.         ; 剪贴板里不能包含(中文)/数字/特殊字符
      & B: z: }  j8 i
    5.         ;
      4 F$ R9 w- J' Y. |
    6.         code := asc( substr(clipboard, index, 1) )
      8 `: U6 r3 [: S9 |/ C
    7.         if( code < 20: F% L# \% I9 }$ j! h4 v; {! C; m
    8.             or code >= 33 and code <= 38
      ! |1 B3 C- H, v) K
    9.             or code >= 40 and code <= 44
        ^! r- \4 r# C; S3 m5 w; l
    10.             or code >= 46 and code <= 64
      # a: O6 @# f8 C0 B
    11.             or code >= 91 and code <= 96
      : g  r0 Z9 ^6 h& z; O; b1 \, C
    12.             or code > 127  ; 将这一行屏蔽就可以使用中文了吗?0 y; h% b$ {; L: K! k
    13.             or code >= 123 and code <= 126 ) {
        l) q0 T! i8 s, u3 m
    14.             Clipboard := oldClipboard
      + b4 U9 h, R% }$ I& c) X
    15.             return
      6 T: \. p3 e! f, ^& e& Q
    16.         }
      , i$ M# Q6 S' k# V. F! [- B
    17.         ++index
      ! l1 J$ M, V1 X2 m; t/ i( U1 c
    18.         if(index > len)3 B7 v+ G3 f' N$ p7 @
    19.             break4 @4 y" C2 o' b8 }1 ~
    20.     }
      9 {! |( e. ]0 L" }
    复制代码

    , i* Z$ q; ?$ G4 D4 P: k
    7 F3 F$ Q) B! U% X) c% y# T
    ) b, t, t( Z7 W/ P4 j
  • TA的每日心情
    奋斗
    2024-6-3 15:32
  • 签到天数: 215 天

    [LV.7]常住居民III

    发表于 2020-3-16 08:39:58 | 显示全部楼层
    本帖最后由 deeke 于 2020-3-16 08:43 编辑 ; V, X4 q0 f  u9 `* a0 v3 K

    . R  t: s. x% x, ^7 ~1. 试试 MsgBox % SubStr("123abc我在哪儿789", 7, 1); 应该显示 "我"。
    . t3 K2 z' B0 t5 B! t, Y' i$ j5 e
    2. Asc() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode).
    # l- @* T4 [! W- r# `试试 MsgBox, % Asc("我"); ; g! y2 T8 Q- r) l& z* V

    ; E7 K+ f5 g* q9 R9 ~, q3. 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).
    " P+ x9 L9 v; J1 N' u; hApart from the Unicode supplementary character detection, Ord() is identical to Asc().9 Q! Y6 I' C. t0 y. X  p/ j  A
    试试 MsgBox, % Ord("我") ;/ r0 z6 d" X1 ~! [. `
    & Q+ ~9 i" X3 K5 S4 Y3 X( k6 Y1 v% K
    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
    * W8 I9 e  r" ]/ u* ~% E! W, @# D直接在这一段前面加;不就可以了?

    / k5 v+ |& ]4 a感谢回复!但我的问题不是如何注释代码,而是我不知道注释的目标是否正确。
    # ?9 L# q( E& u$ F$ r2 J+ Q! N: e6 S" [3 L/ Z( V
    我的问题如果拆开来看:9 A5 Y6 q% C7 {
    1、"code > 127" 是否就是代表中文?) D) l/ c& H8 V2 G/ F: ^
    2、还是"code > 127"除了代表中文,还有其他含义?若屏蔽是否会出现副作用?
    ' |, J7 e+ D6 t& W! q2 Y5 Z7 h+ n3、还是中文不仅仅需要"code > 127",还需要其他,具体是?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-10-5 23:52 , Processed in 0.031596 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

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