Mam pliki javascript, których potrzebuję, aby je zapisać w UTF-8 (bez BOM), za każdym razem, gdy przekonwertuję je na właściwy format w Notepad ++ , są one przywracane z powrotem do UTF-8 z BOM, gdy otwieram je w Visual Studio. Jak mogę powstrzymać VS2010 przed zrobieniem tego?
Kolejne pytanie, czy UTF-8 bez podpisu w Visual Studio jest taki sam jak UTF-8 bez BOM?
Odpowiedzi:
BOM lub Byte Order Mark jest czasem dość irytujący. Visual Studio nie zmieni pliku, chyba że go zapiszesz (jak powiedział Hans).
A oto rozwiązanie twojego problemu: Jeśli chcesz zapisać plik z innymi kodowaniami, wybierz Zapisz jako i rozwiń przycisk Zapisz w oknie dialogowym pliku i wybierz „Zapisz z kodowaniem”. Lub jeśli chcesz pozbyć się tego ustawienia na stałe, po prostu otwórz menu Plik i wybierz „Zaawansowane opcje zapisywania” i tam powinieneś wybrać „UTF-8 bez podpisu” (i to również odpowiedziało na twoje ostatnie pytanie :). Tak „UTF-8 bez podpisu” jest taki sam jak bez BOM.
źródło
Teraz ze zdjęciami.
Idź do
File
->Save As
.Następnie na przycisku Zapisz kliknij trójkąt i kliknij
Save with Encoding...
.Kliknij ok, aby zastąpić plik, a następnie znajdź na liście kodowań
UTF-8 Without signature
-> KliknijOK
.Mam nadzieję, że to pozwoli Ci zaoszczędzić trochę czasu.
źródło
Utworzyłem rozszerzenie Fix File Encoding, które uniemożliwia Visual Studio 2010+ dodawanie BOM do plików UTF-8.
źródło
Niestety nie działa to z plikami csproj. Nie ma „Zaawansowanej opcji zapisywania” i mimo że ustawiłeś ją na „UTF-8 bez podpisu” dla pliku cs, pliki csproj nadal są zapisywane z BOM. Jeśli używasz VSS, nadal narzeka na pliki projektu.
źródło
UTF-8 - Domyślnie „Zapisz jako” (bez podpisu) - Żądanie włączenia wartości domyślnej dla UTF bez podpisu
źródło
charset
w .editorconfig github.com/editorconfig/editorconfig-visualstudio/issues/…W przypadku vs2010 c ++ wystąpią problemy z UTF8 bez BOM, gdy pliki źródłowe zawierają znaki wielobajtowe (np. Chiński).
Te znaki nie zostaną poprawnie rozpoznane bez BOM i spowodują nieudaną kompilację.
źródło
Ostatnio znalazłem to małe narzędzie wiersza polecenia, które dodaje lub usuwa BOM w dowolnych plikach zakodowanych w UTF-8: UTF BOM Utils ( nowy link na github)
Mała wada, możesz pobrać tylko zwykły kod źródłowy C ++. Musisz utworzyć plik makefile ( na przykład z CMake ) i skompilować go samodzielnie, na tej stronie nie ma plików binarnych. Jednak dla programisty nie powinno to stanowić problemu.
źródło
Nawet przy rozwiązaniu Dave81 społeczność Visual Studio 2015 nadal przywracała mój plik do UTF8-BOM za każdym razem, gdy zapisuję ten plik HTML.
Kiedy utworzyłem ten plik HTML, kliknąłem projekt prawym przyciskiem myszy i wybrałem „Dodaj”, a następnie dodałem plik HTML.
Domyślnie Visual Studio dołącza
<meta charset="utf-8" />
znacznik do pliku HTML.Po prostu usunięcie tagu, a następnie zastosowanie rozwiązania Dave81 sprawiło, że problem zniknął naprawdę tym razem.
Wygląda na to, że Visual Studio analizuje plik HTML i kiedy widzi ten znacznik, konwertuje plik na UTF8-BOM bez uwzględnienia oryginalnego formatu pliku (UTF-8 bez BOM).
Zrobiłbym komentarz bezpośrednio pod rozwiązaniem Dave81, ale nie miałem wystarczającej liczby punktów, aby to zrobić ...
źródło
W przypadku kodu Visual Studio wykonaj następujące czynności:
źródło
Ten kod utworzy plik w UTF-8 bez BOM
źródło