Project1

标题: require/load 路径中带有中文的文件 [打印本页]

作者: 失落的乐章    时间: 2018-2-25 02:06
标题: require/load 路径中带有中文的文件
尝试加载名称中带有中文的脚本文件时,发生 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 '成功'
复制代码

作者: fux2    时间: 2018-2-25 09:54
ruby的内部函数RGSS里是没有(或许没法?)转码处理的,还是自己读了文件之后eval吧(x
作者: 失落的乐章    时间: 2018-2-26 17:17
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
复制代码





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1