掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1431|回复: 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 编辑 & E' i; A3 f4 V5 h
    * n, d1 [1 o/ }( p+ a
    [9.15]GoldenDict & 欧路 取词完美版(AHK)
    ' Y6 \8 b: _$ _' R; F5 Z/ v4 uhttps://www.pdawiki.com/forum/thread-23696-1-1.html, {" Z. I' p) V# W) m
    (出处: 掌上百科 - PDAWIKI)
    & g% E: N# J& @" d9 M7 p. Z# T* [* r* ^4 d  \
    @garypang
    - ^! j5 d- P' S2 T2 [8 B& E& m' y& D6 J' b- H2 ^
    1、其中的代码使用 ASCII 编码实现对中文/数字/字符的取词屏蔽,但我需要中文取词,请问如何设置是合理的?
    8 B, r0 ~' ^7 D0 Eor code > 127 ; 将这一行屏蔽就可以使用中文了吗?
    : r- H* a/ ~( I% k注:原始代码中是code > 122,但与or code >= 123 and code <= 126 重叠,而且127不可显示,所以将其更改为code > 127,逻辑上显得更合理/ C9 `# n0 P* c0 A* |; p8 ?9 v

    + {0 L( G" f1 F5 O: V* Y) ]4 P2、为什么第一行使用code < 20 ,而不是 code <= 31?或者干脆不写,反正都看不见。
    + s6 v! u& M& ~我查阅了 https://zh.wikipedia.org/wiki/ASCII ,应该 31及之前都没有意义啊,是因为跟 中文 有关吗?; N' ^. o" Y' Z" u9 \, y# A
    ( G( {3 r6 @3 w3 L' N
    1.     len := strlen(clipboard)
      + h; ?# [( @* @* S- j% I
    2.     index := 1
      : s+ G; r! {4 z
    3.     loop {
      , l2 P! \0 s) r/ c# {2 Y
    4.         ; 剪贴板里不能包含(中文)/数字/特殊字符
      & `. e2 U. f) |0 P. a" K2 d$ U. w
    5.         ;
      " K8 Y2 g( P3 r! J' P' m4 Y
    6.         code := asc( substr(clipboard, index, 1) )4 P% @4 r$ C' a) D5 O+ c' _  P
    7.         if( code < 20( v7 z; {) T4 }: P  V3 l% q2 X) A
    8.             or code >= 33 and code <= 38+ j1 p: ^$ s9 d. N
    9.             or code >= 40 and code <= 44
      3 t; f9 ~- o/ b2 B9 C8 n) N
    10.             or code >= 46 and code <= 64
      - o" _; \  e6 Y
    11.             or code >= 91 and code <= 96
      . G( g3 L9 W0 l% P/ {
    12.             or code > 127  ; 将这一行屏蔽就可以使用中文了吗?
      . j% l2 L/ t' ^5 m, B9 b2 K
    13.             or code >= 123 and code <= 126 ) {9 ]# D+ q7 J) r. x
    14.             Clipboard := oldClipboard* a! Z# B8 B$ n7 a: x1 u: Q8 a, Y" w
    15.             return
      " I- u) x. j0 z; d$ I6 a
    16.         }- V/ v* p8 t" r' b
    17.         ++index1 G/ x1 a  ?4 X1 W8 h& b$ T7 n4 |
    18.         if(index > len)
      0 T3 d* F" n4 ?3 D
    19.             break( R5 m' F* h- Y3 j, P$ O3 H6 b8 S. y
    20.     }6 s, S' t) N6 g7 j, O3 B( k  }# M
    复制代码
    / l& L+ S, {6 |, S0 r  z; {0 N2 ~4 T

    3 O3 m! Y6 o# n: _# h$ e, c" p5 P0 u: G, C3 ]' L1 n6 P
  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 215 天

    [LV.7]常住居民III

    发表于 2020-3-16 08:39:58 | 显示全部楼层
    本帖最后由 deeke 于 2020-3-16 08:43 编辑 1 i' d* s0 K' l$ f4 q6 L- Q% D

    : I, M7 d- W' u! c$ C! i) ^+ E1. 试试 MsgBox % SubStr("123abc我在哪儿789", 7, 1); 应该显示 "我"。
      |6 ~! }5 O8 k. E  g- X& v/ {( t0 p3 e1 D4 ~% A5 V( m1 i1 t
    2. Asc() returns a numeric value in the range 0 to 255 (for ANSI) or 0 to 0xFFFF (for Unicode).
    2 x% w8 E3 \1 b试试 MsgBox, % Asc("我");
    9 Q4 K! j, Z5 T. |3 _4 c
    & [7 z/ j6 M8 c8 `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).1 \# p" _: h$ W
    Apart from the Unicode supplementary character detection, Ord() is identical to Asc().
    + O5 ?7 v* _; E4 d# |2 k2 y7 L试试 MsgBox, % Ord("我") ;
    : N- `) r: b! S7 l( y5 _+ K$ Y
    4 N+ D6 }) Y4 }8 Q4. "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* N# ~直接在这一段前面加;不就可以了?
    ' O+ V3 h5 B' T* V2 H' u# C' N% J6 y
    感谢回复!但我的问题不是如何注释代码,而是我不知道注释的目标是否正确。, g# T! D' m, @+ X8 [
    6 C5 ^, x6 u: G/ }
    我的问题如果拆开来看:) q8 Q+ E8 I" P! v" T7 `: k
    1、"code > 127" 是否就是代表中文?
    , W$ i/ g- F# C9 J* W* ~/ L" c2、还是"code > 127"除了代表中文,还有其他含义?若屏蔽是否会出现副作用?& H$ x0 x) O* H5 f( A
    3、还是中文不仅仅需要"code > 127",还需要其他,具体是?
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

    GMT+8, 2024-6-6 21:31 , Processed in 0.065842 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2023, Tencent Cloud.

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