中文字符串赋值给剪切板会变乱码【需要对应的Windows设定?】

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: arcticir, tmplinshi

llinfeng
Posts: 65
Joined: 08 Dec 2016, 21:54
GitHub: llinfeng

中文字符串赋值给剪切板会变乱码【需要对应的Windows设定?】

06 Apr 2020, 11:02

同一个变量,只有在赋值给Clipboard时,才会出现错误,在Autohotkey内部读取、赋值、显示都没有问题。【注:这个问题只在同一台Windows 10台式机上出现。AHK脚本通过Dropbox同步到其他几台电脑,均没有问题。】

示例

Code: Select all

`::
    WinGetTitle, WinTitle, A`
    Str4Clipboard =  %WinTitle%
    MsgBox, %Str4Clipboard%
    Clipboard = %Str4Clipboard%
return
切换到示例页面并按下激活热键,能完整得通过 MsgBox 显示标签页标题。然而,同样的内容,赋值给剪切板之后,会粘贴成这样:³£¼ûµÄ±àÂëÎÊÌâ - AutoHotkey Community - Mozilla Firefox。MsgBox内容:

Image

暂时的解决办法是对MsgBox里面的文本直接复制,并清理随之产生的乱七八糟的分割线,如下
---------------------------
ahk_master.ahk
---------------------------
常见的编码问题 - AutoHotkey Community - Mozilla Firefox
---------------------------
OK
---------------------------
llinfeng
Posts: 65
Joined: 08 Dec 2016, 21:54
GitHub: llinfeng

Re: 中文字符串赋值给剪切板会变乱码【需要对应的Windows设定?】

06 Apr 2020, 11:15

实际使用情景是这样的:下面的 SubRoutine 可以保存当前浏览器标签页的题目链接地址,排版做Markdown格式(纯文本)并更新给剪切板。在其他Windows电脑上用的好好的,在问题电脑上就会粘出来乱码。

Code: Select all

; Single URL with tab title 
ahk_tool_copy_single_url:
{
    Clipboard = ; empty clipboard
    url_list := ""
    first_url := ""
    url := ""
      Send,^l
      Sleep,100
      Send,^c
      ClipWait,0
      url := Clipboard
      WinGetTitle, WinTitle, A
      ; Pull Win-title and link, in Markdown format.
      url_list .= "* [" WinTitle "]("
      url_list .= url ")"
      ; ; Collect the Win-Title (tab-name)
      ; url_list .= WinTitle "`n"
      ; ; Collect the URL iteslf
      ; url_list .= url "`n"
    Clipboard := url_list
    if (A_ComputerName = "AW") {
    String_for_Copy := url_list 
    String_for_Copy .= "`n"
    msgbox, %String_for_Copy% 
    }
}
return
根据上面的定义,在有粘贴问题的电脑上(叫"AW"),会在复制给剪切板之后再跳出个MsgBox。然而,我一定要在关闭弹出的MsgBox之前粘贴。一旦关闭弹出的MsgBox,剪切板内容会有变化!【这个我就不理解了】
  • 直接从MsgBox复制出来的剪切板内容(粘贴过来的)
    ---------------------------
    ahk_master.ahk
    ---------------------------
    * [中文字符串赋值给剪切板会变乱码【需要对应的Windows设定?】 - AutoHotkey Community - Mozilla Firefox](https://www.autohotkey.com/boards/viewtopic.php?f=27&t=74301)

    ---------------------------
    OK
    ---------------------------
  • 点"OK"关闭MsgBox之后,剪切板内容(粘贴过来的)
    ---------------------------
    ahk_master.ahk
    ---------------------------
    * [?????????????????????Windows???? - AutoHotkey Community](https://www.autohotkey.com/boards/viewtopic.php?f=27&t=74301)

    ---------------------------
    OK
    ---------------------------
注:关闭MsgBox之后,剪切板的内容扔有部分时间是正确的,原因未知。

注2:这个问题电脑是新重装系统的,不该有这么复杂的问题哎
Marcosa1020
Posts: 160
Joined: 23 Sep 2015, 19:15

Re: 中文字符串赋值给剪切板会变乱码【需要对应的Windows设定?】

14 Apr 2020, 23:31

我自己是在黏貼資料的來源後面加上了("*P65001 utf8-without-bom.txt")這段,原本非中文會產生亂碼的部分就消失了,提供給你做為參考。
llinfeng
Posts: 65
Joined: 08 Dec 2016, 21:54
GitHub: llinfeng

Re: 中文字符串赋值给剪切板会变乱码【需要对应的Windows设定?】

18 Apr 2020, 19:15

@Marcosa1020 我没坚持到你回复,重装个系统就好了 lol

Return to “请求帮助”

Who is online

Users browsing this forum: No registered users and 85 guests