Как ответить json TIS-620 на UTF-8 в Node js + Express (API)

У меня проблема с получением данных на моем языке с помощью tis-620

[Структура MySQL]

CREATE TABLE `foo` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  `address` varchar(60) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=tis620

[Данные MySQL]

| id |   name   |    address    |
--------------------------------|
|  1 | ทดสอบ   | 6/12 บ้านแสนดี  |

[Функция NodeJS]

function getAllFoo() {
    return new Promise((resolve, reject) => {
        try {

            // Retrieving
            db.query("SELECT * FROM foo", (err, rows, fields) => {
                if (err) { throw err }
                resolve(rows)
            })

        } catch (error) {
            reject(error)
        }
    })
}

[NodeJS API]

const Foo = require('./foo')

app.get('/getFoo', (req, res) => {

    Foo.getAllFoo().then((rows) => {

         res.header("Content-Type", "application/json; charset=utf-8")
         res.status(200).json(rows)

     }).catch((err) => {
         throw err
     })

    res.status(200).json(rows);
})

Затем я пытаюсь запросить эту конечную точку /getFoo, но данные ответа:

[Данные ответа json]

[
  {
    "id" : 1,
    "name" : "��ҹ.������",
    "address" : "��ҹ������ �.� �.������"
  }
]

Этот результат JSON я буду использовать с моим проектом PHP

Устойчивое решение - использовать UTF-8 повсюду.

tripleee 06.09.2018 05:50
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
1
849
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение :

[Подключение к MySQL] - в соединении mysql добавьте charset в tis620 и добавьте "SET NAMES UTF8", когда ваша база данных подключена

var mysql      = require('mysql');

var connection = mysql.createConnection({

  host     : 'example.org',
  user     : 'bob',
  password : 'secret'
  charset  : 'tis620'

})

connection.connect(function(err) {

  if (!err) {

    connection.query("SET NAMES UTF8")

    console.info('connected as id ' + connection.threadId);

  } else {     

    console.error('error connecting: ' + err.stack);        

  }

});

Другие вопросы по теме