今天又稍微的研究了下第二个问题
回答: 问题二,我已经做到了简单复现。 由 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我简单的尝试了下,还是比较复杂的,我先不继续研究了,这个问题我暂时搁置了,当然如果有哪位朋友有比较好的解决方案,还请赐教。
内容来自网友分享,若违规或者侵犯您的权益,请联系我们
所有跟帖: ( 主贴楼主有权删除不文明回复,拉黑不受欢迎的用户 )
楼主前期社区热帖:
>>>>查看更多楼主社区动态...