PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

nieprawidłowa sekwencja bajtów do kodowania UTF8

Jeśli chcesz przechowywać dane UTF8 w swojej bazie danych, potrzebujesz bazy danych, która akceptuje UTF8. Możesz sprawdzić kodowanie swojej bazy danych w pgAdmin. Wystarczy kliknąć prawym przyciskiem myszy bazę danych i wybrać „Właściwości”.

Ale ten błąd wydaje się mówić, że w twoim pliku źródłowym znajdują się nieprawidłowe dane UTF8. Oznacza to, że copy narzędzie wykryło lub domyśliło się, że dostarczasz mu plik UTF8.

Jeśli używasz jakiegoś wariantu Uniksa, możesz sprawdzić kodowanie (mniej więcej) za pomocą file narzędzie.

$ file yourfilename
yourfilename: UTF-8 Unicode English text

(Myślę, że to zadziała również na komputerach Mac w terminalu.) Nie wiem, jak to zrobić w systemie Windows.

Jeśli używasz tego samego narzędzia do pliku pochodzącego z systemów Windows (czyli pliku, który nie zakodowane w UTF8), prawdopodobnie wyświetli coś takiego:

$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators

Jeśli sytuacja pozostanie dziwna, możesz spróbować przekonwertować dane wejściowe na znane kodowanie, zmienić kodowanie klienta lub jedno i drugie. (Naprawdę przekraczamy granice mojej wiedzy o kodowaniu.)

Możesz użyć iconv narzędzie do zmiany kodowania danych wejściowych.

iconv -f original_charset -t utf-8 originalfile > newfile

Możesz zmienić kodowanie psql (klienta), postępując zgodnie z instrukcjami dotyczącymi obsługi zestawów znaków. Na tej stronie wyszukaj frazę „Aby włączyć automatyczną konwersję zestawu znaków”.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przesyłaj dane między bazami danych za pomocą PostgreSQL

  2. Aktualizacja bazy danych do PostgreSQL w wersji 10 — co powinieneś wiedzieć

  3. Moje ulubione rozszerzenia PostgreSQL — część pierwsza

  4. Jak zwrócić listę dostępnych sortowań w PostgreSQL

  5. Najlepsze narzędzia alertów i powiadomień dla PostgreSQL