У меня проблема с получением данных на моем языке с помощью 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

Решение :
[Подключение к 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);
}
});
Устойчивое решение - использовать UTF-8 повсюду.