【问题标题】:How to fix encoding problem when convert XML to JSON?将 XML 转换为 JSON 时如何解决编码问题?
【发布时间】:2021-06-23 14:17:27
【问题描述】:

我有一个 xml 文件。我需要将xml文件转换为json格式并用节点js写成html。

下面的 XML 文件

<?xml version="1.0" encoding="windows-1251" ?>
<ROWDATA>

<ROW>
  <REG1_CODE>02</REG1_CODE>
  <REG1>Вінницька обл.</REG1>
  <REG2_CODE>19</REG2_CODE>
  <REG2>Тиврівський р-н</REG2>
  <REG3_CODE>001</REG3_CODE>
  <REG3>с. Борсків</REG3>
</ROW>
</ROWDATA>

我将xml转换为json的代码

const fs = require('fs')
const xml2js = require('xml2js')
const parser = new xml2js.Parser()
const http = require('http')
const util = require('util')

function onRequest(request, response) {
    response.writeHead(200, {'Content-Type' : 'text/plain;'});
    fs.readFile('regions.xml', null, function (error, data) {
        parser.parseString(data, (err, result) => {
            if (error) {
                response.writeHead(404);
                response.write('Bla bla');
            } else {
                response.write(util.inspect(result, false, null, true))

            }
            response.end();
        })
    })
}
http.createServer(onRequest).listen(8000)

此代码输出。

{
  ROWDATA: {
    ROW: [
      {
        REG1_CODE: [ [32m'02'[39m ],
        REG1: [ [32m'ВіпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅ.'[39m ],
        REG2_CODE: [ [32m'19'[39m ],
        REG2: [ [32m'пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ-пїЅ'[39m ],
        REG3_CODE: [ [32m'001'[39m ],
        REG3: [ [32m'пїЅ. пїЅпїЅпїЅпїЅпїЅпїЅ'[39m ]
      },
}

如何解决这个编码问题?

【问题讨论】:

    标签: javascript html node.js json xml


    【解决方案1】:

    你可以试试fs.readFile(filepath, { encoding: 'utf-8' }, function (err, data) {})吗?

    此处记录了其他选项https://nodejs.org/api/fs.html#fs_fs_readfile_path_options_callback

    【讨论】:

      猜你喜欢
      • 2012-03-30
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      • 2020-12-03
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      相关资源
      最近更新 更多