掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1366|回复: 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 编辑
    " m  `6 K6 _8 l8 d4 Y; I* C$ Z- I3 U- m
    [9.15]GoldenDict & 欧路 取词完美版(AHK)/ a0 i7 S6 A. C6 i: y
    https://www.pdawiki.com/forum/thread-23696-1-1.html
    $ |8 x* M* |: G7 `' Z' ], f(出处: 掌上百科 - PDAWIKI)
    2 w" {4 B) M, ?& a# q, \) c  y
    / }* K( q9 Q  I! B@garypang
    6 T3 x% b7 k1 _$ ~9 ~) X
    9 t, l6 p. B, V& S/ ^+ {1、其中的代码使用 ASCII 编码实现对中文/数字/字符的取词屏蔽,但我需要中文取词,请问如何设置是合理的?( M/ d7 O+ I/ W- c; Y
    or code > 127 ; 将这一行屏蔽就可以使用中文了吗?) T7 e; |7 A5 c
    注:原始代码中是code > 122,但与or code >= 123 and code <= 126 重叠,而且127不可显示,所以将其更改为code > 127,逻辑上显得更合理
      {5 q. o+ E" k4 S, {6 _% `" f
    ! f+ f# R( q8 v
    2、为什么第一行使用code < 20 ,而不是 code <= 31?或者干脆不写,反正都看不见。
    3 T5 W- Y* r4 }" {8 H0 u3 N- d我查阅了 https://zh.wikipedia.org/wiki/ASCII ,应该 31及之前都没有意义啊,是因为跟 中文 有关吗?
    ' x& [5 W" F2 J2 ^
    & e# _/ r! d" w0 f# ^9 O' g
    1.     len := strlen(clipboard)) U. m+ Y1 B- E, E# w8 C9 l1 B- y( B
    2.     index := 1/ D1 h6 z( [7 N4 N1 T4 a. ~
    3.     loop {7 u- G4 K+ f7 h$ [7 M/ p
    4.         ; 剪贴板里不能包含(中文)/数字/特殊字符( m8 Y) l: e6 j
    5.         ;
      ( e9 ^  B& `4 G9 V$ {% |7 T" U) |
    6.         code := asc( substr(clipboard, index, 1) )2 ~5 u' ]3 z0 Z
    7.         if( code < 20
      6 C7 j* z, O/ C# o
    8.             or code >= 33 and code <= 38
      ! W7 w& \+ |; B+ n. o! y
    9.             or code >= 40 and code <= 44
      7 ]9 y9 z; a4 h+ k
    10.             or code >= 46 and code <= 64: F2 [7 ~( Q5 X: {
    11.             or code >= 91 and code <= 961 P3 L& U* G( I3 m
    12.             or code > 127  ; 将这一行屏蔽就可以使用中文了吗?
      : O- l: \1 z8 G* D
    13.             or code >= 123 and code <= 126 ) {
      3 p. W+ a. t+ m. }% a, W  X
    14.             Clipboard := oldClipboard
      + e, q1 F9 U) a/ ^0 t  g' Q: G
    15.             return% }: K; A; E1 I/ r! ?
    16.         }
      % x/ A& ^  A( `0 l+ v1 f1 G- J
    17.         ++index
      # [5 u* o+ J; t0 K: l
    18.         if(index > len)
      5 K. Y. g" {; X" X/ a+ x
    19.             break3 p1 n3 C! W( z6 }
    20.     }
      . v( K# n: [+ B7 Z
    复制代码

    ( k3 z! }. Q  f& Q
    # d* C" m- ~2 _8 P9 ]( E# x; Z- v( D3 J* b. s1 Z
  • TA的每日心情
    慵懒
    2023-10-14 18:34
  • 签到天数: 210 天

    [LV.7]常住居民III

    发表于 2020-3-16 08:39:58 | 显示全部楼层
    本帖最后由 deeke 于 2020-3-16 08:43 编辑 # x" R# M0 @& S
    ) ]/ e( t$ y$ @. B& }# w% ?
    1. 试试 MsgBox % SubStr("123abc我在哪儿789", 7, 1); 应该显示 "我"。
    + y' G/ k( y$ r+ C& g4 l
    + G1 X$ Z! a, A- N9 v) `( G* R2. Asc() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode).# }; T3 D6 Y+ p$ M# N' s
    试试 MsgBox, % Asc("我"); : }$ p5 J% {7 k3 E7 U% L, [
      ?; Z6 D$ `* p2 }8 x
    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).
    2 \& O# h3 z% b4 V  aApart from the Unicode supplementary character detection, Ord() is identical to Asc().
    + f% Y, J& D) k; ^5 @+ L! t试试 MsgBox, % Ord("我") ;
    3 H$ Z1 c2 q7 m& r
    - a0 k0 }. Z: V0 B# e9 ?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
    / D( a. Z' \5 W4 |; u8 w8 y) r直接在这一段前面加;不就可以了?
    - Z  R* _2 a/ R
    感谢回复!但我的问题不是如何注释代码,而是我不知道注释的目标是否正确。  p1 f$ q& f/ x) S, W

    * [1 W( h- W5 W我的问题如果拆开来看:
    ' g4 G9 i8 ]3 `1 j" d  E+ V- F1、"code > 127" 是否就是代表中文?) b' u  ?* G! Q1 M
    2、还是"code > 127"除了代表中文,还有其他含义?若屏蔽是否会出现副作用?
    5 `9 \+ {: W" a2 P' z/ y* ?3、还是中文不仅仅需要"code > 127",还需要其他,具体是?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-4-18 08:19 , Processed in 0.032586 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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