[返回编程技术首页]·[所有跟帖]·[ 回复本帖 ] ·[热门原创] ·[繁體閱讀]·[坛主管理]

今天又稍微的研究了下第二个问题

送交者: lyabc[♂★★★声望勋衔13★★★♂] 于 2024-01-10 9:46 已读 117 次  

lyabc的个人频道

+关注

回答: 问题二,我已经做到了简单复现。 由 lyabc 于 2024-01-09 10:03

lua文件的编码我已经可以存为ANSI,之前没法改,是因为里面没有汉字,在文本内没有汉字的情况之下,系统会自动将文本识别为UTF-8,这一点可以用notepad创建一个新的txt文件或者lua文件来验证。(参考了一个知乎解答:https://www.zhihu.com/question/471063197/answer/1988630222)

通过lua文件的编码改动,如果手动的将输出文件的名字改为中文的时候,已经可以正确输出,比如说下面代码,可以正确的得到一个名为“测试”的批处理文件
local bat_filename = "测试.bat"
作为验证,当我把lua文件的编码改回utf-8的时候,运行lua,得到的批处理文件名又会变成乱码。

不过我的问题依然是存在的,思考了一下,我觉得通过vlc的API得到的文件uri是URL编码的形式,解码之后应该是utf-8格式。

关键语句在这里:
local item = vlc.input.item()
local uri = item:uri()
uri = vlc.strings.decode_uri(uri)
我查阅了vlc的Lua Scripting API文档(https://vlc.verg.ca/),找到获取文件名的更简单的办法item:name(),但这也没有解决问题。

所以大概还是得用luaiconv来进行编码utf-8到gbk的转译,才能正确的输出文件名吧。
luaiconv我简单的尝试了下,还是比较复杂的,我先不继续研究了,这个问题我暂时搁置了,当然如果有哪位朋友有比较好的解决方案,还请赐教。
喜欢lyabc朋友的这个贴子的话, 请点这里投票,“赞”助支持!

内容来自网友分享,若违规或者侵犯您的权益,请联系我们

所有跟帖:   ( 主贴楼主有权删除不文明回复,拉黑不受欢迎的用户 )


用户名: 密码: [--注册ID--]

标 题:

粗体 斜体 下划线 居中 插入图片插入图片 插入Flash插入Flash动画


     图片上传  Youtube代码器  预览辅助



[ 留园条例 ] [ 广告服务 ] [ 联系我们 ] [ 个人帐户 ] [ 创建您的定制新论坛频道 ] [ Contact us ]