草庐IT

Ruby 1.8 Iconv UTF-16 到 UTF-8 失败,出现 "\000"(Iconv::InvalidCharacter)

我在处理Windows机器上生成的表格数据的文本文件时遇到问题。我在Ruby1.8工作。在处理文件中的第二行时,以下给出错误(“\000”(Iconv::InvalidCharacter))。第一行正确转换。require'iconv'conv=Iconv.new("UTF-8//IGNORE","UTF-16")infile=File.open(tabfile,"r")while(line=infile.gets)line=conv.iconv(line.strip)#FAILSHEREputsline#DOMORESTUFFHEREend奇怪的是它读取并转换文件中的第一行没有问题。

ruby - string[16] 在 17 个字符的字符串上失败?

specialChars="]%#$!_.+?~&[*/^;@"puts(specialChars[16])打印一个空行。为什么会这样?我需要转义某些字符吗? 最佳答案 #是一个保留字符,用于在用":分隔时进行字符串插值#Exampleputs"Mynameis#{my_name}!"如果使用''而不是"",则字符串插值被禁用,可以正常使用:#The""hasbeenreplacedwith''specialChars=']%#$!_.+?~&[*/^;@'putsspecialChars[16]#=>'@'

ruby - 如何在 Ruby 中使用 UTF-16LE 源代码?

我有以下名为test.rb的文件,编码为UTF-16LE#encoding:UTF-16LEtest="test!"ptest使用以下命令运行它不会产生任何结果ruby./test.rb我在这里错过了什么?如果有人想知道,我试图将我的源代码设置为UTF-16LE编码的原因是我正在使用UTF-16LE输入和输出文件编码。我的印象是,如果我在读入文件时正确设置编码并在输出时正确设置编码并且我在源代码中正确设置了#encoding:,那么一切都应该正常工作。如果有人发现此方法(或更简单的方法)有任何问题,请随时告诉我。 最佳答案 用UTF

ruby - 从 Ruby 中的 UTF-16 编码文件中读取内容

我想读取一个文件的内容并将其保存到一个变量中。通常我会做类似的事情:text=File.read(filepath)不幸的是,我正在处理一个使用UTF-16LE编码的文件。我一直在做一些研究,看起来我需要改用File.Open并定义编码。我在某处读到一条建议,说要打开文件并逐行读取数据:text=File.open(filepath,"rb:UTF-16LE"){|file|file.lines}但是如果我运行:putstext我得到:#如何将UTF-16LE文件的内容读入变量?注意:我使用的是Ruby1.9.3和Windows操作系统 最佳答案

Ruby:如何将文件保存为 UTF-16 Little Endian

我想用UTF-16LittleEndian将®保存到txt文件中,我测试了一些方法1.下面的编码是UTF-8$RegisterMark=[174].pack('U*')file=File.new("C:/Output.txt","w")file.puts$RegisterMarkfile.close2.下面的编码是UTF-16BigEndianrequire'iconv'$RegisterMark=[174].pack('U*')$utf16RegisterMark=Iconv.conv('UTF-16','UTF-8',$RegisterMark)file=File.new("C:/

ruby - 在 Ruby 中读取二进制 16 位有符号(大端)整数

我试图从一个文件中读取数字以大端格式存储为16位有符号整数。我用unpack读入了数字,但是big-endian格式的16位有符号整数没有参数,只有无符号整数。这是我目前所拥有的:number=f.read(2).unpack('s')[0]有没有办法将上面的数字解释为带符号的整数或其他方式来实现我想要的? 最佳答案 我不知道是否可以为此使用String#unpack,但是要将16位无符号转换为有符号,您可以使用classicalmethod:>>value=65534>>(value&~(1-2

ruby-on-rails - 编码::UndefinedConversionError: "\xA8"从 ASCII-8BIT 到 UTF-8 (SFTP)

使用Net-SFTPgem、Ruby2和Rails4我编写的代码在纯ruby​​中运行,但将我的代码复制到rails上,现在我得到:Encoding::UndefinedConversionError:"\xA8"fromASCII-8BITtoUTF-8我可以在我的代码中更改什么以使其正常工作?defself.get_recent_file(ftp_file,local_file)Net::SFTP.start(Config::A_FTP[:domain],Config::A_FTP[:username],:password=>Config::A_FTP[:password])do|

ruby-on-rails - Rails + Mac OS X : libMagickCore-Q16. 7.dylib 不工作

如果我运行某种rake命令,我会收到此错误消息:rakeaborted!dlopen(/Users/adam/.rvm/gems/ruby-1.9.3-p327/gems/rmagick-2.13.1/lib/RMagick2.bundle,9):Librarynotloaded:/usr/local/lib/libfreetype.6.dylibReferencedfrom:/usr/local/lib/libMagickCore-Q16.7.dylibReason:Incompatiblelibraryversion:libMagickCore-Q16.7.dylibrequire

ruby-on-rails - 当我需要 UTF-8 时,Rails 应用程序一直以 ASCII-8BIT 生成 View ?

我正在尝试使我的Rails应用程序成为本地UTF-8。我这样做是因为自升级到Ruby1.9以来,我遇到了这个问题,每次我的网页必须显示一些UTF-8字符时,我得到:incompatiblecharacterencodings:UTF-8andASCII-8BIT作为错误页面。我已经诊断出当我尝试呈现任何UTF-8文本时会出现错误,因为这种网页会失败:%h3.book_title="カタカナ"(要求对上述字符串进行编码将返回UTF-8)然而这个会成功:%h3.book_title="カタカナ".force_encoding("ASCII-8BIT")所以看起来Rails决定在默认情况下使

ruby-on-rails - 'Encoding::UndefinedConversionError "\xE9"from ASCII-8BIT to UTF-8' 当使用一些在 ruby​​ on rails 中使用 file.open 的 ruby​​ gem 时

我想要什么?我想在Rails3.2中从模板文件生成.docx文件或.odt文件我想在其中使用日语。在ubuntu服务器12.04&ruby​​1.9.3p194&rails3.2.8发生了什么?我尝试了gems'docx-templater'和'serenity'ruby-docx-模板https://github.com/jawspeak/ruby-docx-templater1个sample效果不错2尝试在我的Rails应用程序中做同样的事情在Controller中作为示例defgen_docxinput_file='./app/template/ExampleTemplate.d