mirror of
https://github.com/dbgate/dbgate
synced 2024-11-07 20:26:23 +00:00
fix: Encoding error when opening Unicode query files
This commit is contained in:
parent
beb1a00874
commit
a526797013
@ -31,6 +31,7 @@
|
|||||||
"diff": "^5.0.0",
|
"diff": "^5.0.0",
|
||||||
"diff2html": "^3.4.13",
|
"diff2html": "^3.4.13",
|
||||||
"file-selector": "^0.2.4",
|
"file-selector": "^0.2.4",
|
||||||
|
"iconv-lite": "^0.6.3",
|
||||||
"js-yaml": "^4.1.0",
|
"js-yaml": "^4.1.0",
|
||||||
"json-stable-stringify": "^1.0.1",
|
"json-stable-stringify": "^1.0.1",
|
||||||
"localforage": "^1.9.0",
|
"localforage": "^1.9.0",
|
||||||
|
@ -55,11 +55,16 @@ function getFileEncoding(filePath, fs) {
|
|||||||
if (!e && buf[0] === 0xef && buf[1] === 0xbb && buf[2] === 0xbf) e = 'utf8';
|
if (!e && buf[0] === 0xef && buf[1] === 0xbb && buf[2] === 0xbf) e = 'utf8';
|
||||||
if (!e && buf[0] === 0xfe && buf[1] === 0xff) e = 'utf16be';
|
if (!e && buf[0] === 0xfe && buf[1] === 0xff) e = 'utf16be';
|
||||||
if (!e && buf[0] === 0xff && buf[1] === 0xfe) e = 'utf16le';
|
if (!e && buf[0] === 0xff && buf[1] === 0xfe) e = 'utf16le';
|
||||||
if (!e) e = 'ascii';
|
if (!e) e = 'utf8';
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function decodeFile(buf: Uint8Array, enc: string) {
|
||||||
|
const iconv = window.require('iconv-lite');
|
||||||
|
return iconv.decode(buf, enc);
|
||||||
|
}
|
||||||
|
|
||||||
function openElectronJsonLinesFile(filePath, parsed) {
|
function openElectronJsonLinesFile(filePath, parsed) {
|
||||||
openNewTab({
|
openNewTab({
|
||||||
title: parsed.name,
|
title: parsed.name,
|
||||||
@ -115,7 +120,8 @@ export function openElectronFileCore(filePath, extensions) {
|
|||||||
|
|
||||||
if (nameLower.endsWith('.sql')) {
|
if (nameLower.endsWith('.sql')) {
|
||||||
const encoding = getFileEncoding(filePath, fs);
|
const encoding = getFileEncoding(filePath, fs);
|
||||||
const data = fs.readFileSync(filePath, { encoding });
|
const buf = fs.readFileSync(filePath);
|
||||||
|
const data = decodeFile(buf, encoding);
|
||||||
|
|
||||||
newQuery({
|
newQuery({
|
||||||
title: parsed.name,
|
title: parsed.name,
|
||||||
|
Loading…
Reference in New Issue
Block a user