![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 8.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Męczę się ostatnio z kodowaniem UTF-8 w generowanym pliku RSS w php.
Mam: potem, np. title:
W bazie mam UTF-8. Kiedy uruchamiam ten plik PHP w przeglądarce, na serwie, kanał RSS nie wykonuje błędów, ale nic nie wyświetla. Sprawdzając źródło dowiaduję się, że wszystko gra i jest ładnie wczytywane z bazy, z tym, że np. Firefox podkreśla UTF-8'owe zapisy, na żółto, np. & quot; Normalnie, moja strona również leci z UTF-8 i charset html mam utf-8 i jest ok. Kiedy klikam źródło, też zanki są w stylu: & quot;, ale w RSS znaki specjalne UTF-8 są brane w FF jako błędne i FF nie renderuje RSS'a. Po usunięciu tych znaków jest ok, ale albo nie mam polskich liter, albo tam gdzie miały być polskie litery nie ma żadnej. Na PHP forum jest iso-8859-2 na stronie, w bazie i w RSS iso-8859-2. Jeśli miałbym bazę w iso-8859-2, to nie byłby problem. Ale w UTF-8 już jest. Czy to czytnik RSS FF jest głupi czy ja?(IMG:style_emoticons/default/tongue.gif) Pomimo, że to jest pytanie dodatkowe, bardzo proszę o odpowiedź na to najważniejsze: Jak sobie z tym poradzić?(IMG:style_emoticons/default/smile.gif) PS. macie dosć dziwny edytor tych postow. Nic nie moglem wyedytowac, nie widac gdzie jest kursor, klikniecie w srodku tekstu nie powoduje przejscie do tego miejsca. Jak wy sobie z tym radzicie?:/ W szybkiej odpowiedzi jest ok. Gorzej z nowym postem i pełnej edycji wiadomości. Ten post edytował depz55 29.01.2010, 04:06:50 |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Problem zapewne nie leży w samym kodowaniu jako takim, tylko tym jak wygląda tekst po konwersji. Ogólnie dane w kanale RSS typu tekstowego nie powinny być interpretowane przez czytnik. Niestety problem opisany przez Ciebie występuje właśnie gdy w tekście wyświetlają się pewne encje inne niż standardowe gt, lt. Wtedy należy dodatkowo całość zawartości "niepewnego tagu" ująć w znacznik CDATA by zadziałało.
EDIT: Problem ten tyczy tylko najnowszego Firefoxa. Opera i IE działają dobrze. IMHO to problem wynikły z zastosowania nowego silnika JS, ale to tylko moje przypuszczenie. Ten post edytował thek 29.01.2010, 10:22:47 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 8.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam już w CDATA,
<title><![CDATA[Tre��]]></title> Z tym, że teraz są pojedyncze: & ndash; i � zamiast polskich znaków tekst na FF3 nadal się nie renderuje, w źródle, to co w CData jest na różowo (cały wpis). Skoro kodowanie w bazie jest UTF-8, RSS jest UTF-8, to skąd �? |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Choćby stąd, że plik może mieć inne kodowanie wewnętrzne niż utf8. Plik może być bowiem wewnątrz inny format, choćby ASCII. Wtedy będą problemy.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 8.01.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za pomoc. W VS zapisałem plik jako UTF8, miałem kodowanie Windows + w kodzie SET NAMES utf-8, może komuś się przyda. Niedopatrzenie (IMG:style_emoticons/default/smile.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 12:05 |