Eksportowanie tekstu UTF-8 z LibreOffice bez znaku kolejności bajtów


5

W LibreOffice, jeśli zapiszę dokument jako typ pliku „zakodowany tekst” i jako kodowanie wybiorę „Unicode (UTF-8)”, zawsze zapisuje on znak kolejności bajtów (BOM) na początku tekstu. Dzieje się tak nawet podczas eksportowania tekstu, który zaczynał się bez takiego znaku (takiego jak importowany tekst ISO-8859-8). Czy istnieje sposób na stłumienie generowania BOM?

Zgodnie z dokumentacją Unicode : „ Gdy UTF-8 jest używany transparentnie w środowiskach 8-bitowych, użycie BOM zakłóci każdy protokół lub format pliku, który oczekuje określonych znaków ASCII na początku ”. To jest właśnie problem, na który napotykam, ponieważ tekst zostanie przekazany do programu, który nie spodziewa się początkowej BOM.

Odpowiedzi:


1

Oczekuje łatka 2018 dołączona do odpowiedniego raportu o błędzie 2011

Martin van Zijl 26.02.2018, 18:48:14 UTC

Stworzyłem łatkę do recenzji. Z tą łatką, jeśli:

1) Plik -> Zapisz jako ...
2) Wybierz typ = „Tekst (wybierz kodowanie)”
3) Kliknij „Użyj tekstu - ...”
4) W ostatnim oknie dialogowym pojawi się pole wyboru „Dołącz kolejność bajtów- znak". Jeśli usuniesz zaznaczenie, BOM nie zostanie uwzględniony w danych wyjściowych.

Załączone demo wideo.

Link do recenzji: https://gerrit.libreoffice.org/#/c/50388/


Dobrze wiedzieć, że w końcu należy to rozwiązać. BOM jest przydatny do kodowania UTF-16, ale nie ma żadnej wartości i powinien zostać usunięty w przypadku eksportu UTF-8. Zauważyłem ten komentarz w wątku raportu o błędzie: „Zgadzam się z tym. Ale obecnie mamy bardzo niewielu programistów. Może to potrwać kilka lat. Przepraszamy za taką sytuację”. Trwa siedem lat, więc każdy, kto skomentował ten komentarz, najwyraźniej dobrze ocenia. :)
Ted Hopp

-1

Podczas zapisywania pliku za pomocą opcji Zapisz jako w obszarze Wszystkie formaty wybierz opcję Zakodowany tekst, a następnie Zapisz. Gdy pojawi się okno dialogowe Potwierdź format pliku, wybierz opcję Użyj formatu kodowanego tekstu. Pojawi się okno dialogowe Opcje filtra ASCII. Wybierz Europę Zachodnią (ASCII / US) i kliknij OK. Jeśli następnie sprawdzisz wynikowy plik za pomocą edytora szesnastkowego, takiego jak Bless, zobaczysz, że BOM zniknął.


4
Oczywiście BOM już nie ma, ale plik nie jest już także kodowany w UTF-8!
kreemoweet

1
A potem nie zniknęły również postacie z Europy Zachodniej, jak również postacie z Europy Zachodniej powyżej 127
phuclv

Przepraszam, ale to wcale nie dotyczy pytania. Potrzebuję sposobu na wyeksportowanie tekstu UTF-8 z LibreOffice bez BOM.
Ted Hopp,

@TedHopp dobrze, a jeśli wybierzesz opcję, którą mówi? Uruchom polecenie „file” na pliku i zobacz, co mówi. Możesz spróbować edytować hex pliku UTF-8 i usunąć BOM. Próbowałeś czegoś takiego?
barlop

1
@barlop - opcja, którą sugeruje, powoduje, że w pliku pojawiają się śmieci zamiast znaków spoza ASCII (np. cyrylica, hebrajski, grecki itp.) Nie widzę, jak przydatne byłoby polecenie „file”. Edycja szesnastkowa i usunięcie BOM może działać dla pliku tu lub tam, ale jest całkowicie nieodpowiednie do pracy produkcyjnej. Poza tym w ogóle nie odpowiada na moje pytanie: czy istnieje sposób na stłumienie generowania BOM z LibreOffice?
Ted Hopp
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.