找回密码
 加入
搜索
查看: 1907|回复: 7

[AU3基础] 剪切板的数据,如何保存为ANSI编码?【已解决】

  [复制链接]
发表于 2017-9-15 13:05:43 | 显示全部楼层 |阅读模式
本帖最后由 fenhanxue 于 2017-9-19 21:26 编辑

之前一直用的汉化版是论坛右上角(下载)的版本(版本连接:http://autoitx.com/thread-12964-1-1.html
au3的版本较早:3.3.9.21

最近下了论坛里比较新的汉化版,版本连接:http://www.autoitx.com/thread-19307-1-1.html
版本号:2016-04-25             3.3.14.2 第 4 版


两者之间在中文支持这一块差别好大,好多我原先写的代码在中文支持上出现了各种乱码问题,查询了论坛多篇帖子,问题的关键可能就在UT8-8 和 ANSI这里
但尚未头绪清晰,目前遇到如下问题,望有前辈指点:
Local $temp_file = @ScriptDir & '\1.txt'

Local $a = ClipGet()
; $a = StringToBinary($a,1)
; $a = BinaryToString($a,4)



Local $file = FileOpen($temp_file,2+512)
FileWrite($file,$a)
FileClose($file)

Sleep(1000)

$a = FileGetEncoding($temp_file)
MsgBox(0,'为什么出现的是256,不是512',$a)
即剪切板的数据,我相同保存为ANSI的
但是上述代码实测结果为保存为UT8-8


2017年9月16日更新:
今天实测发现,如果剪切板里的内容,包含中文字体,则保存结果为ANSI
如果剪切板的内容,不含中文,则保存结果为UT8-8
如图:



20170919更新:
问题悬而未决,基于14版 ANSI和UTF8编码混乱,楼主不得已,弃坑重新用回3.3.9.21  。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-9-15 13:58:17 | 显示全部楼层


版本问题吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-9-15 14:45:17 | 显示全部楼层
本帖最后由 tubaba 于 2017-9-15 14:53 编辑

测试了一下,情况跟二楼一样,应该是版本关系?
 楼主| 发表于 2017-9-16 10:12:34 | 显示全部楼层
发现个更奇怪的问题:
昨天发帖提问的时候,上述代码(1楼代码)运行多次,第16行msgbox的运行结果都是256
而就在刚刚,又运行了1次上述代码(1楼代码),显示的结果又变成了512
程序版本为论坛里的汉化版:3.3.14.2 第 4 版
下载地址:http://www.autoitx.com/thread-19307-1-1.html
 楼主| 发表于 2017-9-16 10:13:19 | 显示全部楼层
现在又变成256了
 楼主| 发表于 2017-9-16 10:23:40 | 显示全部楼层
本帖最后由 fenhanxue 于 2017-9-16 10:29 编辑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-9-18 23:44:15 | 显示全部楼层
哈哈 我3.3.12.0版本 竟然获取不到,返回了0  
AU3Check (3.3.12.0)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-9-19 09:53:28 | 显示全部楼层
回复 6# fenhanxue
帮助文件:

FileOpen
打开文件以供读取或写入.
FileOpen("文件名"[, 模式 = 0])

文件名 要打开文件的文件名.
模式 [可选] 文件打开模式.
可以是以下值的组合:
    $FO_READ (0) = 只读模式(默认)
    $FO_APPEND (1) = 写入模式(追加数据到文件尾部)
    $FO_OVERWRITE (2) = 写入模式(删除之前的内容)
    $FO_CREATEPATH (8) = 如果目标目录不存在就创建(见备注).
    $FO_BINARY (16) = 强制二进制模式(见备注).
    $FO_UNICODE 或 $FO_UTF16_LE (32) = 使用 Unicode UTF16 小编码读写模式.
    $FO_UTF16_BE (64) = 使用 Unicode UTF16 大编码读写模式.
    $FO_UTF8 (128) = 使用 Unicode UTF8 (带 BOM)读写模式.
    $FO_UTF8_NOBOM (256) = 使用 Unicode UTF8 (无 BOM)读写模式.
    $FO_ANSI (512) = 使用 ANSI 读写模式.
    $FO_UTF16_LE_NOBOM (1024) = 使用 Unicode UTF16 (无 BOM) 小编码读写模式.
    $FO_UTF16_BE_NOBOM (2048) = 使用 Unicode UTF16 (无 BOM) 大编码读写模式.
    $FO_FULLFILE_DETECT (16384) = 读取没有 BOM 的打开文件时, 完整检测文件确定它是否为 UTF8 或 UTF16 编码.
如果不使用这一模式, 则因性能方面原因只会检测文件初始部分(最多 64 KB).
文件夹路径必须存在(除非指定模式 $FO_CREATEPATH (8) - 见备注).

常量定义文件: FileConstants.au3
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 23:45 , Processed in 0.096304 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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