Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z kodowaniem UTF-8 (bez BOM) w Notepad++
Forum PHP.pl > Forum > Przedszkole
Daql
Problem polega na tym, że kiedy w n++ ustawiam kodowanie "UTF-8 (bez BOM)", to po zapisaniu i zamknięciu takiego pliku oraz ponownym otwarciu, n++ pokazuje, że jest to dokument zakodowany w ANSI(!). Co ciekawe, zauważyłem że kiedy ustawiam "UTF-8 (bez BOM)", to na pasku statusu wyświetla się informacja dot. kodowania:

"Dos\Windows" "ANSI as UTF-8"

Gdzieś wyczytałem, że to oznacza użycie kodowania mieszanego, czyli całość zakodowana w ANSI i tylko znaki narodowe (itp.) są kodowane w UTF-8.
No dobrze, ale przecież ja jako twórca skryptu chciałbym, żeby byl on zakodowany w UTF-8 bez tych trzech znaczków na początku (czyli bez BOM) i troszkę mnie to irytuje, kiedy otwierając ponownie taki plik, edytor gubi informację o UTF-8 i traktuje dokument jako zakodowany w ANSI.

Polubiłem n++ i chciałbym z niego dalej korzystać, dlatego proszę o pomoc.

Używam Notepad++ w wersji 5.0.3 na platformie WinXP.



Znalazłem rozwiązanie!

W n++ zapisując plik z kodowaniem "UTF-8 (bez BOM)" (a faktycznie w "ANSI as UTF-8 bez BOM"), edytor sam sprawdza czy w dokumencie są jakieś znaki diakrytyczne (np. "polskie ogonki"). Jeśli nie znajdzie żadnego, to zapisuje plik w czystym ANSI(!). W momencie, kiedy ponownie otworzymy taki plik i wyedytujemy go, dopisując jakieś "polskie ogonki", to będzie on zakodowany w ANSI, a nie w UTF-8.

Rada:
Zapisując plik w UTF-8 (bez BOM) ZAWSZE zwracaj uwagę, na faktyczne kodowanie, w szczególności, kiedy dopisujesz znaki diakrytyczne.
ucho
To pewnie będzie dla ciebie szokujące - ale bez BOM i bez użycia znaków spoza ANSI to ANSI = UTF8, co do bita. BOM jest właśnie po to by nie było problemów z rozpoznaniem kodowania jakie autor miał na myśli - to że BOM powoduje różne inne problemy to inna sprawa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.