2012-08-24 21:25:06 +0000 2012-08-24 21:25:06 +0000
21
21

Excel niszczy znak specjalny przy zapisie jako CSV

Pracuję nad projektem, który wykorzystuje plik CSV dostarczony przez klienta do zapełnienia bazy danych. Klient ma utworzyć arkusz kalkulacyjny, a następnie zapisać go jako CSV do przesłania, który jest następnie parsowany do bazy danych.

Problem polega na tym, że gdy klient zapisuje arkusz Excela jako plik MS-DOS .csv, wiele znaków specjalnych zostaje zamienionych na znaki zapytania “?” (symbole takie jak ‘ “ / ). Jeśli jednak otworzymy plik CSV i ręcznie zastąpimy każdy znak znakiem, będzie on działał poprawnie.

Problem polega na tym, że plik danych jest OGROMNY i nie możemy tego 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ż przesłać do google docs i ponownie zapisać, jednak to również łamie te znaki.

Odpowiedzi (13)

12
12
12
2013-08-29 19:11:05 +0000

Upewnij się, że wybierasz zapis jako CSV (Comma Delimited), a nie CSV (MS-DOS), ponieważ DOS nie obsługuje znaków UTF-8.

6
6
6
2012-10-30 00:40:31 +0000

Odkryłem, że problem utraconych znaków występuje (w moim przypadku) tylko podczas zapisywania z formatu xlsx do formatu csv. Próbowałem zapisać plik xlsx najpierw do xls, a następnie do csv. To faktycznie zadziałało.

4
4
4
2013-09-04 20:46:55 +0000

Możliwym obejściem jest zapisanie go jako Unicode Text (2007 ma to, nie jestem pewien co do poprzednich edycji), który zapisuje go jako plik tekstowy z rozdzielonymi tabulatorami.

Ten plik zachował moje znaki unicode (w moim przypadku pracowałem z azjatyckimi znakami ), jednocześnie tworząc pewien rodzaj delimitowanego pliku tekstowego, który można następnie uruchomić za pomocą zewnętrznych narzędzi do konwersji na csv, jeśli to konieczne.

Moje dane wejściowe nie miały jednak tabulatorów osadzonych w każdej komórce i nie jestem pewien, jak byłoby to obsługiwane.

3
3
3
2013-12-19 21:37:59 +0000

Oto, co działa dla mnie:

  1. Dokonaj korekty danych w Excelu lub CSV
  2. Zapisz plik jako tekst Unicode
  3. Otwórz NOTEPAD
  4. Otwórz zapisany przed chwilą plik Unicode za pomocą NOTEPAD-a
  5. Kursorem zaznacz pusty obszar, w którym znajduje się pojedynczy tabulator 5a. Użyj spacji pomiędzy Acquire Id a Request Type, ponieważ mieści się tam JEDEN TAB!
  6. Naciśnij Cnrl-C aby skopiować znak tabulatora
  7. Wpisz Cnlr-H, aby otworzyć okno funkcji Zamień
  8. Kliknij w polu tekstowym Find What i wpisz Cnlr-V, aby wkleić znak Tab
  9. Kliknij w polu Zamień z tekstem i wpisz przecinek
  10. Kliknij przycisk Zamień, aby przetestować go jeden raz. Potwierdź, że tabulator w pliku został zastąpiony przecinkiem
  11. Kliknij przycisk Zamień wszystko
  12. Kliknij Anuluj
  13. Zapisz plik i wyjdź z programu
  14. W Eksploratorze Windows zmień rozszerzenie pliku na .csv
3
3
3
2016-01-14 15:29:13 +0000

Miałem ten problem od jakiegoś czasu i w końcu poświęciłem trochę czasu, aby to rozgryźć! Udało mi się (pozornie) rozwiązać problem poprzez zapisanie danych jako “Windows Comma Separated (.csv)”. Próbowałem tego z plików .xlsx i .xls, oba zostały przekonwertowane na .csv tak samo dobrze. Mam nadzieję, że to pomoże - daj mi znać, jeśli pojawią się jakieś problemy z tą metodą. Zgłoszę się, jeśli zobaczę coś w ciągu najbliższych kilku tygodni.

1
1
1
2016-05-06 09:03:48 +0000
1
1
1
2016-08-02 10:18:07 +0000

Rozwiązanie:

  1. Otwórz swój plik CSV w Notatniku (zauważysz, że jest napisane ANSI), a następnie ponownie zapisz go jako UTF-8 w Notatniku.

  2. Wtedy import powinien zadziałać. Jeśli jednak otworzysz go ponownie w Excelu i po prostu zapiszesz, nie będzie działać, ponieważ Excel nie może natywnie kodować w UTF-8 najwyraźniej.

  3. Inną opcją jest praca z plikiem CSV w www.LibreOffice.org (darmowy), który może kodować poprawnie w UTF-8 (sam tego nie próbowałem).

Wpadłem na podobny problem z importem csv produktów z ułamkami do WooCommerce, który był coraz odrzucany z powodu znaków błędu “?”. Dzieje się tak, ponieważ plik CSV nie był zakodowany w UTF-8. HOWEVER, nawet po zapisaniu pliku CSV w programie Excel z kodowaniem UTF-8 nadal nie działało.

Po przeszukaniu wielu forów okazuje się, że chociaż Excel daje opcję kodowania jako UTF-8 - podczas ZAPISYWANIA JAKO CSV, Excel automatycznie konwertuje go z powrotem na ANSI, nawet jeśli wybierzesz UTF-8.

0
0
0
2018-02-01 13:48:54 +0000

dla ™ znalazłem rozwiązanie. W pliku .xlsx, zastąp wszystkie “™” na “&tr-ade;”. usuń - z replace with. Zapisz plik jako .csv i wszystko jest zrobione. życzę Ci, aby to zadziałało.

0
0
0
2018-03-07 16:11:22 +0000

Na komputerze Mac, to jest to, co działało dla mnie.

W excelu wybierz zapisz jako, a następnie z rozwijanej listy wybierz windows comma separated (CSV).

To po prostu działa!!!

0
0
0
2020-01-10 13:45:18 +0000

Zapisywanie jako CSV (Comma Delimited) jak Techie007 wspomniał powyżej będzie prawidłowo przechwytywać większość znaków międzynarodowych, jednak nadal miałem problemy kilka do włączenia Ł, ć, i ń (mogą być inne).

Byłem trochę zaskoczony, gdy zobaczyłem, że funkcja ASC w EXCEL VBA zwraca kod ascii związany z L, c i n odpowiednio dla tych międzynarodowych znaków. Moim nieco niezadowalającym podejściem było napisanie krótkiego makra konwertującego wszystkie znaki przed zapisaniem ich do pliku .csv. Uwaga: ASC dla większości popularnych międzynarodowych znaków, takich jak é czy á, będzie działać bez zarzutu].

0
0
0
2015-07-21 13:41:23 +0000

Nawet ja napotkałem problem ze znakami specjalnymi podczas pobierania japońskich terminów w formacie .csv. Jednak kiedy zapisałem plik .csv w formacie tekstowym (Tab delimited), znaki japońskie wyświetlały się idealnie. Następnie po prostu skopiowałem dane z pliku tekstowego i wkleiłem do arkusza kalkulacyjnego. Działało dobrze!!!

Dzięki, Vaishakh

0
0
0
2014-06-25 11:47:47 +0000

Znalazłem najlepsze rozwiązanie w historii: * http://woshka.com/blog/microsoft/microsoft-excel/solve-the-problem-saving-excel-csv-format-with-utf-8-unicode-encoding.html **

Z linku:

1-Kliknij na menu start

2-Wybierz panel sterowania

3-Znajdź opcje regionalne i językowe w trybie klasycznym lub wpisz jego nazwę na pasku wyszukiwania w prawym górnym rogu okna panelu sterowania

4-Kliknij na zakładkę zaawansowane i kliknij locales

5-Kliknij na perski lub arabski lub swój pożądany program kodujący UTF-08, który chcesz zapisać w Excelu do CSV

0
0
0
2018-05-30 14:20:21 +0000

Zapisz jako unicode Zmień nazwę pliku unicode na .csv https://www.youtube.com/watch?v=1VP8 )