首页 / 知识
在Rails应用中导入XML文件,UTF-16编码问题
2023-04-15 09:44:00

Importing XML file in Rails app, UTF-16 encoding problem我正在尝试通过Ruby on Rails应用程序中的网页导入XML文件,代码ruby视图代码如下(我删除了HTML布局标签以使阅读代码更容易)
以下HTML形式的结果
" fmfiles_controller"中的Form_Import_DDR方法是使用REXML读取XML文档的艰苦工作的代码。代码如下
并且它继续读取所有不同的XML元素。 我在Mac OS X 10.5.4上的开发环境,同一台计算机上的站点数据库和浏览器中使用Rails 2.1.0和Mongrel 1.1.5。 我的问题是这个。读取字符编码为UTF-8的XML文档时,整个过程运行良好,但是当XML文件为UTF-16时,该过程失败,有人知道为什么会发生这种情况以及如何将其停止吗? 我在下面包括了调试器控制台的错误输出,大约需要5分钟才能得到此输出,并且浏览器在以下输出之前显示超时,并显示"无法打开页面"
听起来可能不是您的XML文件或REXML处理它的方式问题,而不是Rails / mongrel问题。您可以通过编写一个短脚本来直接(而不是在请求中)读取XML文件并查看其是否仍然失败来进行检查。 假设确实如此,我将考虑几件事。首先,我将检查您是否正在运行最新版本的REXML。几年前,UTF-16处理中存在一个错误(http://www.germane-software.com/projects/rexml/ticket/63)。 我要检查的第二件事是您是否遇到的问题与此类似:http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/ba7b0585c7a6330d。如果是这样,您可以在该线程中尝试解决方法。 如果以上方法均无济于事,请回复并提供更多信息,例如尝试读取文件时遇到的异常。 实际上,我认为您的问题可能与我在本文中详述的问题有关。如果您是我,我将在BinPad模式下在TextPad中将其打开,并在XML开始之前查看是否有任何字节顺序标记。 您是否尝试过使用JRuby进行此操作?我听说JRuby更好地支持Unicode字符串。 您可以尝试的另一件事是使用另一个XML解析库,例如libxml ou Hpricot。 REXML是您可以使用且可能无法扩展的最慢的Ruby XML库之一。 由于要使其正常工作,我只需要将第一个XML元素的编码属性更改为具有值UTF-8而不是UTF-16,该XML文件实际上就是UTF-8,并且由生成该文件的应用程序错误地标记。 XML文件是FileMaker Pro Advanced 8.5在OS X 10.5.4上生成的FileMaker DDR导出。 |
最新内容
相关内容
linux文件常用命令?
linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命令,linux常用命令及用法linux系统常用操作命令如下:ls:全拼list,功能文件夹排序linux命令?
文件夹排序linux命令?,系统,数字,信息,工作,时间,命令,管理,设备,单位,工具,基本linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux命令拷贝文件?
linux命令拷贝文件?,系统,文件,命令,目录,情况,源文件,目标,文件夹,选项,语法,LINUX复制命令是什么?1、在Linux中,用于复制文件和目录的命令是c压缩文件夹命令linux?
压缩文件夹命令linux?,系统,软件,命令,工具,电脑,文件,文件名,格式,选项,目录,Linux中文件的压缩与解压缩命令操作示例集锦在Linux系统中,我们linux配置文件夹命令?
linux配置文件夹命令?,地址,系统,工作,信息,命令,标准,服务,名称,位置,文件,linux中怎么添加或修改配置文件1、首先打开一台linux虚拟机。输入linux管理文件的命令?
linux管理文件的命令?,系统,管理,工作,命令,信息,基础,目录,工具,文件,操作,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命linux命令行关闭网页?
linux命令行关闭网页?,服务,系统,状态,管理,命令,进程,文件,模式,指令,主机,linux如何退出命令操作界面?如图,vi 文件名,接着按回车即可打开对应linux命令行文件夹?
linux命令行文件夹?,系统,名称,文件夹,不了,命令,文件,名字,通用,数据,首次,linux系统删除文件夹命令1、linux删除命令rm-rf命令。具体详情:rmlinux退出文件命令行?
linux退出文件命令行?,状态,档案,命令,电脑,编辑,文件,模式,界面,指令,键盘,linux用VI编辑后保存退出命令是什么啊?1、linux退出vi编辑命令有linux文件io命令?
linux文件io命令?,系统,设备,时间,地址,平均,信息,服务,工具,报告,网络,嵌入式Linux开发中的文件I/O是什么?1、文件I/O就是对外设进行文件抽象改文件linux命令行?
改文件linux命令行?,地址,系统,工作,信息,数字,文件,命令,设备,密码,权限,linux常用命令有哪些1、linux系统常用操作命令linux系统常用操作命拷贝文件夹linux命令?
拷贝文件夹linux命令?,系统,地址,服务,信息,密码,情况,单位,项目,命令,文件,linux系统如何挂载硬盘并拷贝到某个目录下?copy命令 该命令的功