zoukankan      html  css  js  c++  java
  • 使用REXML解析XML时碰到invalid byte sequence in GBK (ArgumentError)问题

    ruby更新到1.9.2后,对于编码问题碰到的少了不少,今天在Windows下,使用REXML解析一个编码为UTF-8的XML文件时,碰到了异常invalid byte sequence in GBK (ArgumentError),一看就知道是编码问题,尝试加上魔法注释# -*- coding: utf-8 -*-,仍旧异常——这只是让ruby解析器以UTF8解析代码文件,对于读写文件,这个并不管用

    查看了一下读取代码,主要是这么两句

    file = File.open 'G:\city.xml'
    doc = REXML::Document.new file

    REXML需要一个File对象,讲明对于文件的读取,实际上REXML是依靠File类的,REXML既然报GBK编码错误,那么是否说明File读取的是GBK编码的?

    查了一下资料,File以系统默认编码读取文件,简体中文Windows下,默认编码是GBK。原来如此!

    知道原因后就好改了,只需要在File读取时,指定读取时的编码就可以了,修改哪下

    file = File.open 'G:\city.xml', 'r:utf-8'
    doc = REXML::Document.new file

    一切OK!

  • 相关阅读:
    如何做兼容性测试
    python批量转换excl为csv
    mysql删除用户后再次创建用户报错
    xadmin
    CORS跨域资源共享
    drf自定义公共组件
    luffy项目前端初始化
    luffy项目后端初始化
    企业级项目的环境准备
    base64编码的使用
  • 原文地址:https://www.cnblogs.com/varlxj/p/2222610.html
Copyright © 2011-2022 走看看