Pracuję nad projektem, który wykorzystuje plik CSV dostarczony przez klienta do wypełnienia bazy danych. Klient utworzy arkusz kalkulacyjny, a następnie zapisze go jako plik CSV do przesłania, który następnie zostanie przeanalizowany w bazie danych.
Problem polega na tym, że za każdym razem, gdy klient zapisuje arkusz kalkulacyjny programu Excel jako plik .csv MS-DOS, wiele znaków specjalnych jest konwertowanych na znaki zapytania „?” (symbole takie jak „” /). Jeśli jednak otworzymy plik CSV i ręcznie zastąpimy każdy z odpowiednim znakiem, to zadziała dobrze.
Problem polega na tym, że plik danych jest OGROMNY i nie możemy tego racjonalnie zrobić, więc miałem nadzieję, że istnieje sposób, aby go zapisać. Próbowaliśmy eksportować jako Unicode i ASCII bezskutecznie. Próbowaliśmy również przesyłać do dokumentów Google, a ponowne zapisanie powoduje jednak uszkodzenie tych znaków.
Odpowiedzi:
Upewnij się, że wybierasz zapisywanie jako a,
CSV (Comma Delimited)
a nie aCSV (MS-DOS)
, ponieważ DOS nie obsługuje znaków UTF-8.źródło
Przekonałem się, że problem utraconych znaków występuje tylko (w moim przypadku) podczas zapisywania z formatu xlsx do formatu csv. Próbowałem najpierw zapisać plik xlsx do xls, a następnie do csv. To faktycznie działało.
źródło
Możliwym obejściem jest zapisanie go jako
Unicode Text
(2007, nie jestem pewien co do poprzednich wydań), który zapisuje go jako plik tekstowy oddzielony tabulatorami.Ten plik zachował moje znaki Unicode (w moim przypadku pracowałem ze znakami azjatyckimi ) podczas tworzenia pewnego rodzaju pliku tekstowego, który możesz następnie uruchomić za pomocą zewnętrznych narzędzi, aby w razie potrzeby przekonwertować na plik csv.
Moje dane wejściowe nie miały jednak kart osadzonych w każdej komórce i nie jestem pewien, jak by to było obsługiwane.
źródło
Oto, co działa dla mnie:
źródło
Mam ten problem od jakiegoś czasu i wreszcie poświęciłem trochę czasu, aby go rozwiązać! Mogłem (pozornie) naprawić problem, zapisując jako „Windows Comma Separated (.csv)”. Próbowałem z .xlsx i .xls, oba przekonwertowane na .csv w porządku. Mam nadzieję, że to pomoże - daj mi znać, jeśli pojawią się jakiekolwiek problemy z tą metodą. Prześlę raport, jeśli coś zobaczę w ciągu najbliższych kilku tygodni.
źródło
Rozwiązanie:
Otwórz plik CSV w Notatniku (zauważysz, że mówi ANSI), a następnie zapisz go ponownie jako UTF-8 w Notatniku.
Następnie import powinien działać. Jeśli jednak otworzysz go ponownie w programie Excel i po prostu Zapisz go nie będzie działać, ponieważ program Excel nie może natywnie kodować w UTF-8.
Inną opcją jest praca z plikiem CSV na stronie www.LibreOffice.org (bezpłatny), który może poprawnie kodować w UTF-8 (chociaż sam tego nie próbowałem).
Wystąpił podobny problem z importem csv produktów z frakcjami do WooCommerce, który został odrzucony z powodu „?” znaki błędów. Wynika to z faktu, że plik CSV nie został zakodowany w UTF-8. JEDNAK, nawet po zapisaniu pliku CSV w programie Excel z kodowaniem UTF-8 nadal nie działał.
Po przejrzeniu wielu forów wydaje się, że chociaż Excel daje możliwość kodowania jako UTF-8 - podczas OSZCZĘDZANIA JAKO CSV, Excel automatycznie konwertuje go z powrotem na ANSI, nawet jeśli wybierzesz UTF-8.
źródło
źródło
Nawet napotkałem problem ze znakami specjalnymi podczas pobierania japońskich terminów w formacie .csv. Jednak gdy zapisałem plik .csv w formacie tekstowym (rozdzielany tabulatorami), japońskie znaki były idealnie wypełnione. Następnie skopiowałem dane z pliku tekstowego i wkleiłem w arkuszu kalkulacyjnym. Działało dobrze!!!
Dzięki, Vaishakh
źródło
Znaleziono najlepsze rozwiązanie: http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html
Z linku:
źródło
dla ™ znalazłem rozwiązanie. W pliku .xlsx zamień wszystkie „™” na „& tr-ade;”. usuń - z zamień na. Zapisz plik jako .csv i gotowe. szkoda, że to dla ciebie nie zadziała.
źródło
Na komputerze Mac to działało dla mnie.
W programie Excel wybierz opcję Zapisz jako, a następnie z menu rozwijanego wybierz pozycję oddzieloną przecinkami (CSV).
To po prostu działa !!!
źródło
źródło