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”.