Из моей базы данных я получаю следующую строку:
Johan Öbert
Что нужно сказать:
Johan Öbert
Я попытался преобразовать его в utf-8 следующим образом:
nameString.toString("utf8");
Но все та же проблема.
Любые идеи?
Из моей базы данных я получаю следующую строку:
Johan Öbert
Что нужно сказать:
Johan Öbert
Я попытался преобразовать его в utf-8 следующим образом:
nameString.toString("utf8");
Но все та же проблема.
Любые идеи?
Используйте модуль utf8 из npm для кодирования/декодирования строки.
Установка:
npm install utf8
В браузере:
<script src="utf8.js"></script>
В Node.js:
const utf8 = require('utf8');
API:
Encode:
utf8.encode(string)
Кодирует любую заданную строку (строку) JavaScript как UTF-8 и возвращает версию строки в кодировке UTF-8. Он выдает ошибку, если входная строка содержит нескалярное значение, то есть одиночную замену. (Если вам необходимо также иметь возможность кодировать нескалярные значения, используйте вместо этого WTF-8.)
// U+00A9 COPYRIGHT SIGN; see http://codepoints.net/U+00A9
utf8.encode('\xA9');
// → '\xC2\xA9'
// U+10001 LINEAR B SYLLABLE B038 E; see http://codepoints.net/U+10001
utf8.encode('\uD800\uDC01');
// → '\xF0\x90\x80\x81'
Decode:
utf8.decode(byteString)
Декодирует любую заданную строку в кодировке UTF-8 (byteString) как UTF-8 и возвращает версию строки в кодировке UTF-8. Выдает ошибку при обнаружении деформированного UTF-8. (Если вам нужно также иметь возможность декодировать закодированные нескалярные значения, используйте вместо этого WTF-8.)
utf8.decode('\xC2\xA9');
// → '\xA9'
utf8.decode('\xF0\x90\x80\x81');
// → '\uD800\uDC01'
// → U+10001 LINEAR B SYLLABLE B038 E
У меня была та же проблема, когда я загрузил текстовый файл через fs.readFile()
, я попытался установить кодирование в UTF8, он сохранил то же самое. теперь мое решение следующее:
myString = JSON.parse( JSON.stringify( myString ) )
после этого a... истинно интерпретируется как Ö.
Если вы хотите изменить кодировку, вы всегда переходите от одного к другому. Таким образом, вы можете перейти от Mac Roman
в UTF-8
или от ASCII
до UTF-8
.
Как важно знать желаемую кодировку вывода как текущую кодировку источника. Например, если у вас есть Mac Roman
и вы декодируете его от UTF-16
до UTF-8
, вы просто сделаете его искаженным.
Если вы хотите узнать больше о кодировке, эта статья будет подробно описана:
npm pacakge encoding, который использует node-iconv или iconv-lite должно позволить вам легко указать, какую исходную и конечную кодировку вы хотите:
var resultBuffer = encoding.convert(nameString, 'ASCII', 'UTF-8');
Вы также можете использовать класс буфера :
var someEncodedString = Buffer.from('someString', 'utf-8');
У меня была та же проблема с JSON, просто используйте это:
JSON.parse(json or object)
var utf8 = require("./utf8")
console.log(utf8.encode("NEAR DAGDI CHAWL"))
//utf8.js is not working properly