Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Encoding::UndefinedConversionError:“未定义”\x96“;在ruby中写入文件时发生从ASCII-8BIT到UTF-8的错误_Ruby On Rails_Ruby_Utf 8 - Fatal编程技术网

Ruby on rails Encoding::UndefinedConversionError:“未定义”\x96“;在ruby中写入文件时发生从ASCII-8BIT到UTF-8的错误

Ruby on rails Encoding::UndefinedConversionError:“未定义”\x96“;在ruby中写入文件时发生从ASCII-8BIT到UTF-8的错误,ruby-on-rails,ruby,utf-8,Ruby On Rails,Ruby,Utf 8,我有一个函数,将文件名写入ruby中的文件。 但我得到了这个错误: Encoding::UndefinedConversionError: "\x96" from ASCII-8BIT to UTF-8 要克服这一问题,需要使用以下方法: file = File.open("names", "w") file.puts(filename.force_encoding("utf-8")) 这样做解决了这个问题,但当我再次阅读文件并尝试打开其名称存储在名称文件中的文件时。 我收到一个错误,说不能

我有一个函数,将文件名写入ruby中的文件。 但我得到了这个错误:

Encoding::UndefinedConversionError: "\x96" from ASCII-8BIT to UTF-8
要克服这一问题,需要使用以下方法:

file = File.open("names", "w")
file.puts(filename.force_encoding("utf-8"))
这样做解决了这个问题,但当我再次阅读文件并尝试打开其
名称
存储在名称文件中的文件时。 我收到一个错误,说
不能统计:不存在这样的文件或文件夹


欢迎提出任何建议

好吧,我会尽量提出建议

听起来您好像从运行Windows的工作站收到了此文件。看起来这个文件的原始名称是

Volunteer Log – in Page.docx
也就是说,是使用
编码::CP1252
存储的。好的,您需要以适当的方式处理
CP1252

file = File.open 'names', 'w'
file.puts filename.force_encoding(Encoding::CP1252).encode(Encoding::UTF_8)

希望有帮助。

操作系统?失败的文件名示例?我使用的是ubuntu 14.04文件名:“志愿者日志\x96 in Page.docx”Uhkhm。请在此目录中发布正在执行的
ls
的输出。志愿者日志?在Page.docxIs中,这是来自Windows系统的文件吗?在中,
\x96
将是一个
-
我已经检查了文件编码及其ASCII-8BIT,我尝试了file=file.open'names',w'file.puts filename.force_编码(encoding::ASCII_8BIT).encode(encoding::UTF_8)但它给出了错误编码::unfinedconversionError:“\x96”从ASCII-8BIT到UTF-8请尝试上面的代码。我很确定它会起作用的。抱歉没有起作用,得到了Errno::enoint:没有这样的文件或目录