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. Kliknij bazę danych prawym przyciskiem myszy i wybierz „Właściwości”.
Ale ten błąd wydaje się informować, że w pliku źródłowym są nieprawidłowe dane UTF8. Oznacza to, że copy
narzędzie wykryło lub zgadło, że podajesz mu plik UTF8.
Jeśli pracujesz pod jakimś wariantem Uniksa, możesz sprawdzić kodowanie (mniej więcej) za pomocą file
narzędzia.
$ 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żyjesz tego samego narzędzia do pliku pochodzącego z systemu Windows (czyli pliku, który nie jest zakodowany w UTF8), prawdopodobnie pokaże coś takiego:
$ file yourfilename
yourfilename: ASCII text, with CRLF line terminators
Jeśli sprawy pozostaną dziwne, możesz spróbować przekonwertować dane wejściowe na znane kodowanie, zmienić kodowanie klienta lub jedno i drugie. (Naprawdę przekraczamy granice mojej wiedzy na temat kodowania).
Możesz użyć iconv
narzędzia 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 zestawu znaków . Na tej stronie wyszukaj frazę „Aby włączyć automatyczną konwersję zestawu znaków”.