掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 114|回复: 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 编辑
    5 K+ f4 J+ [9 \" R' T* _
    6 ?3 w1 \: Q7 g8 Y* C[9.15]GoldenDict & 欧路 取词完美版(AHK)
    % I* x3 ~8 h4 D7 ~https://www.pdawiki.com/forum/thread-23696-1-1.html3 z: \) a; b; e4 z) \- n  a
    (出处: 掌上百科 - PDAWIKI)) H8 B' n' z& ?/ ?
    1 ?# j: @1 Q9 ?# H
    @garypang
    ! K" ?8 L) C  K0 D$ m1 A  |' m1 N
    ) X" V) }4 z, T8 e) l" }2 T. f- u1、其中的代码使用 ASCII 编码实现对中文/数字/字符的取词屏蔽,但我需要中文取词,请问如何设置是合理的?% p- h% H. ]/ j0 J, T: r$ }
    or code > 127 ; 将这一行屏蔽就可以使用中文了吗?
    8 ~) X9 Y- K% t7 t  @) @1 u注:原始代码中是code > 122,但与or code >= 123 and code <= 126 重叠,而且127不可显示,所以将其更改为code > 127,逻辑上显得更合理
    % e. a; r. x0 p
    , s, ~4 Z& f$ Y
    2、为什么第一行使用code < 20 ,而不是 code <= 31?或者干脆不写,反正都看不见。( L: V, ]( G& u: B, j; V' W+ i9 X2 Z
    我查阅了 https://zh.wikipedia.org/wiki/ASCII ,应该 31及之前都没有意义啊,是因为跟 中文 有关吗?0 i0 z& N. j& G0 l, |( |6 y

    3 X4 D  Q# E5 L" b  T
    1.     len := strlen(clipboard)& V! {% F) x8 X1 m: |
    2.     index := 1
      " X! T) T3 Y4 [! G  A- k
    3.     loop {/ K( z$ v; v5 D; d% M; W  L
    4.         ; 剪贴板里不能包含(中文)/数字/特殊字符* Z9 N7 @7 b% r) ~7 X
    5.         ;   x0 w7 Z# ~: W5 z( x% c2 l5 L0 b
    6.         code := asc( substr(clipboard, index, 1) ), N( j3 |' p  c' g+ n5 s7 q4 L
    7.         if( code < 20' B  w; j) S, I
    8.             or code >= 33 and code <= 38
      1 K0 m/ w: w5 a/ _4 k4 g- A
    9.             or code >= 40 and code <= 44
      0 a- Q4 u" X/ B7 `: P+ j! P
    10.             or code >= 46 and code <= 64
      * r& e/ ~7 E5 i9 S- m$ ^9 w
    11.             or code >= 91 and code <= 96+ B+ T+ B' m% M. m+ w- s
    12.             or code > 127  ; 将这一行屏蔽就可以使用中文了吗?- ]. y$ D2 t' e: w: A# f0 Z
    13.             or code >= 123 and code <= 126 ) {
      ! v& H3 b. P# h! W
    14.             Clipboard := oldClipboard9 O: t  R% K* C- A
    15.             return
      7 V" i) J  w. Z2 N( a
    16.         }6 W5 K1 |5 g, E7 S& y
    17.         ++index. x& t7 w" q2 S# t
    18.         if(index > len)
      $ \' G& r* H0 i3 d
    19.             break
      9 I% N- u' l( \$ r5 o. Q
    20.     }! @  n2 I  U* n5 c7 H
    复制代码
    . _  ~2 Y; y! a$ a
    2 f5 l; H9 M. a8 s- H6 j

    ; Q) {& D$ S: m) L* {( b% o
  • TA的每日心情
    慵懒
    昨天 01:41
  • 签到天数: 172 天

    [LV.7]常住居民III

    发表于 2020-3-16 08:39:58 | 显示全部楼层
    本帖最后由 deeke 于 2020-3-16 08:43 编辑
    + S4 Q; P/ M* l$ w5 i
    & _1 u6 ?& i1 R& }+ g  M4 o2 W1. 试试 MsgBox % SubStr("123abc我在哪儿789", 7, 1); 应该显示 "我"。/ @! c% d& {* G
    4 t1 ^8 w2 l6 E5 u8 A
    2. Asc() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode).
    & M9 D6 @) E) n" M% ?& m* P& b试试 MsgBox, % Asc("我"); 4 a' t5 f* V7 g/ N) w1 Z9 D3 v
    # p4 P7 H* p4 d, O# U* P. D" v
    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).. f% a: P# q. s
    Apart from the Unicode supplementary character detection, Ord() is identical to Asc()./ H7 c; P. Z4 A6 E4 K% b( N
    试试 MsgBox, % Ord("我") ;; ^- L: \2 T- V2 Y
    7 M" F' {4 y4 r' {
    4. "code > 127" 表示所有的编码后超过1字节的字符,比如希腊字母、中日韩文字。
  • TA的每日心情
    开心
    2020-3-17 10:52
  • 签到天数: 207 天

    [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
    5 P% _' l( o( m3 B- g直接在这一段前面加;不就可以了?
    ( x  F7 v0 T/ t: a
    感谢回复!但我的问题不是如何注释代码,而是我不知道注释的目标是否正确。# W) \# ]+ g' x: K, E5 m: z; E

    ( y, i# e* n1 a8 |$ o4 f$ m- s我的问题如果拆开来看:7 w  V9 @" L$ [: J2 R# q
    1、"code > 127" 是否就是代表中文?) v! o" w, w" F" V
    2、还是"code > 127"除了代表中文,还有其他含义?若屏蔽是否会出现副作用?
    % Y0 m( H9 P% z; d, o3、还是中文不仅仅需要"code > 127",还需要其他,具体是?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

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

    GMT+8, 2020-4-1 06:48 , Processed in 0.206627 second(s), 8 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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