设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2503|回复: 2
打印 上一主题 下一主题

[已经解决] require/load 路径中带有中文的文件

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3039
在线时间
1052 小时
注册时间
2011-8-16
帖子
242
跳转到指定楼层
1
发表于 2018-2-25 02:06:27 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
尝试加载名称中带有中文的脚本文件时,发生 LoadError(no such file to load),测试代码如下:
  1. load 'test.rb' # 加载成功
  2. load '测试.rb' # 中文文件名,加载失败
  3. load File.join(Dir.getwd, '测试.rb') # 中文文件名,绝对路径,加载失败
复制代码


而当游戏所在路径中带有中文时,加载任何文件都会出错:


我尝试用 Win32API 转码,好像也不行:


test.rb 和 测试.rb 的内容如下:
  1. # encoding: utf-8
  2. msgbox '成功'
复制代码

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
39645
在线时间
7484 小时
注册时间
2009-7-6
帖子
13483

开拓者贵宾

2
发表于 2018-2-25 09:54:36 | 只看该作者
ruby的内部函数RGSS里是没有(或许没法?)转码处理的,还是自己读了文件之后eval吧(x
RGDirect - DirectX驱动的RGSS,点我了解.
RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3039
在线时间
1052 小时
注册时间
2011-8-16
帖子
242
3
 楼主| 发表于 2018-2-26 17:17:55 | 只看该作者
fux2 发表于 2018-2-25 09:54
ruby的内部函数RGSS里是没有(或许没法?)转码处理的,还是自己读了文件之后eval吧(x ...

好吧,看来只能这样了==
  1. begin
  2.   load file
  3. rescue LoadError, # 全英文路径,非全英文文件名
  4.        Encoding::UndefinedConversionError, # 非全英文路径
  5.        Encoding::CompatibilityError # 非全英文路径,非全英文文件名
  6.   eval File.read(file)
  7. rescue
  8.   # 其他异常处理……
  9. end
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-24 14:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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