Mam aplikację, która pozwala użytkownikom utrzymywać ciągi w bazie danych, a te łańcuchy mogą zawierać emotikony. Mam problem jest emotikonów takich jak będą przechowywane w MySQL jako
😊
Kodowanie Node.js ISO8859-1 do UTF-8
Kiedy odzyskać ten ciąg przy użyciu klienta PHP MySQL i uczynić go w przeglądarce internetowej, że czyni dobrze prawdopodobnie dlatego, że Content-Type
jest ustawione na UTF -8. Kiedy próbuję odczytać ciąg w pliku node.js, wracam do tego, co uważam za kod ISO8859-1 kodujący literał 😊
. Zestaw znaków na stole ustawiony jest na latin1
i stąd uzyskuję ISO8859-1.
Jaki jest właściwy sposób kodowania ciągu w pliku node.js, aby można było zobaczyć emoji, a nie kodowanie ustawione przez MySQL, gdy I console.log
ciąg znaków?
Jak o po prostu ustalenie kolumna charset zamiast? – zerkms
@zerkms Niestety obecnie nie ma takiej opcji, najlepiej, gdybym mógł rozwiązać to na kliencie. Rozumiem, że twoja sugestia jest idealnym rozwiązaniem. – randombits
Wygląda na to, że musisz przekonwertować punkty kodowe Unicode na odpowiednie znaki charytatywne iso8859-1. Następnie użyj bufora tablicowego do złożenia łańcucha utf z surowych bajtów. Ten ostatni można znaleźć http://stackoverflow.com/a/11058858/251311 i dla pierwszego spróbować https://github.com/ashtuchkin/iconv-lite Alternatywnie do iconv-lite można po prostu ręcznie utworzyć tabelę konwersji , ponieważ jest malutki – zerkms