掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1136|回复: 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 编辑 " e3 d. i. `7 u

      w0 Z  V) o9 L1 z( `1 o[9.15]GoldenDict & 欧路 取词完美版(AHK)
    ( @2 a+ P. a8 N9 H4 ^https://www.pdawiki.com/forum/thread-23696-1-1.html
    5 P$ S* o: S+ P( i(出处: 掌上百科 - PDAWIKI)
    , `6 m* h: D3 Z
    # C* _0 ^1 t% `* N@garypang $ ~( c* D# s. _8 _+ M- X; X
    8 s5 U  {  @( ]6 ]
    1、其中的代码使用 ASCII 编码实现对中文/数字/字符的取词屏蔽,但我需要中文取词,请问如何设置是合理的?) ~0 I1 j( I- x8 e8 ^. ~
    or code > 127 ; 将这一行屏蔽就可以使用中文了吗?
      N9 X  f. h! O/ [! k6 R1 m9 h6 Q注:原始代码中是code > 122,但与or code >= 123 and code <= 126 重叠,而且127不可显示,所以将其更改为code > 127,逻辑上显得更合理
    1 ~% G( Y0 o9 o7 [, f. j4 z4 g1 T
    4 x8 F1 p& V6 @" h
    2、为什么第一行使用code < 20 ,而不是 code <= 31?或者干脆不写,反正都看不见。
    ; @% W, c1 j" t0 @我查阅了 https://zh.wikipedia.org/wiki/ASCII ,应该 31及之前都没有意义啊,是因为跟 中文 有关吗?% n6 g5 }9 Q5 q0 Q5 `0 Z8 P
    4 Q' `3 ?% i" L: _
    1.     len := strlen(clipboard)5 o4 l5 Y# e% _: l
    2.     index := 1
      4 Q7 W4 ?/ }4 {  \5 e
    3.     loop {
      1 Q. f5 r3 ~: r
    4.         ; 剪贴板里不能包含(中文)/数字/特殊字符; k8 T3 E/ K+ ?. f3 b: E5 u2 G
    5.         ; 0 I" D( A! l2 }% b/ x
    6.         code := asc( substr(clipboard, index, 1) )
      ' y# G( @; m9 H
    7.         if( code < 20$ F/ z4 K8 `: [/ d' u! r: V
    8.             or code >= 33 and code <= 38( _7 i# x$ ^2 H  a  p
    9.             or code >= 40 and code <= 44
      1 l1 [% [+ A) b
    10.             or code >= 46 and code <= 64; `* M: C( X) [( j
    11.             or code >= 91 and code <= 967 v$ ?: J0 ~0 t! {+ s( F  Q
    12.             or code > 127  ; 将这一行屏蔽就可以使用中文了吗?
      0 E! q/ I+ b) i! ]  Y2 J
    13.             or code >= 123 and code <= 126 ) {* q) }1 g4 @/ l2 a
    14.             Clipboard := oldClipboard0 F. L' D. U* r3 w
    15.             return7 n1 s& u0 P( C: h+ ~2 Q
    16.         }
      ( m; M$ q+ n/ a5 U* }5 E! B
    17.         ++index
      + U  x9 u1 r+ ~( F  e7 Y$ C' y
    18.         if(index > len)) Z  q# _% c5 g
    19.             break
      & \) {3 R1 U! G' V; a$ i
    20.     }0 ~! e1 y3 O% V+ I$ U" r
    复制代码

    3 M# Z' ~2 `2 E
    : T& Z. C, I/ ]# ]3 J- N
    - y  c* O: h# O( k' i
  • TA的每日心情
    慵懒
    2023-10-14 18:34
  • 签到天数: 210 天

    [LV.7]常住居民III

    发表于 2020-3-16 08:39:58 | 显示全部楼层
    本帖最后由 deeke 于 2020-3-16 08:43 编辑
    + N" R" z: }9 D
    & W# \+ `6 G* j/ u1. 试试 MsgBox % SubStr("123abc我在哪儿789", 7, 1); 应该显示 "我"。
    3 J- {2 G: z0 r1 g8 U% C# V+ S- p" ?9 _
    2. Asc() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode).
    ' S( h, P8 m6 i+ ^( t试试 MsgBox, % Asc("我"); 4 K2 t+ u7 D3 c# W, H. o; h1 x- v  |3 p. ?
    7 l7 ?: J1 [4 N6 z" v0 F
    3. 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)., O/ e, `! d+ B& K
    Apart from the Unicode supplementary character detection, Ord() is identical to Asc().$ g% h3 B* d7 Z
    试试 MsgBox, % Ord("我") ;; G# X3 T# ]- O: Q, }& O

    9 N, F2 ?2 j/ w* J4. "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
    ( `: W+ {3 F' S4 Y8 l直接在这一段前面加;不就可以了?
    3 S5 H( a/ Q9 P# W* ?
    感谢回复!但我的问题不是如何注释代码,而是我不知道注释的目标是否正确。
    ' s, Y- z5 O, Z- o; E: T
    6 g7 J3 A6 {, x! b: C7 @我的问题如果拆开来看:
    / N/ V1 y) c4 E! X1 w1、"code > 127" 是否就是代表中文?
    ' T3 B$ G  h4 B; s% m) h8 P2、还是"code > 127"除了代表中文,还有其他含义?若屏蔽是否会出现副作用?
    % `+ V0 R1 K5 `) I0 `; @, D3、还是中文不仅仅需要"code > 127",还需要其他,具体是?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2023-12-10 02:27 , Processed in 0.032167 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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