Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [XML] Problem z kodowaniem
em_pl
post 1.10.2006, 12:45:54
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 10.12.2005
Skąd: Stalowa Wola / Wroclaw

Ostrzeżenie: (0%)
-----


Witam
Mam problem z kodowaniem przy generowaniu XMLa przy pomocy implementacji DOM w php

  1. <?php
  2. $dom = new DOMDocument("1.0", "iso-8859-2");
  3. ?>


Bez kodowania wszystko jest ok
Kiedy dodam "iso-8859-2" wyskakuje błąd:

  1. <?php
  2. output conversion failed due to conv error, bytes 0xB6 0x20 0x74 0x61
  3. ?>


w linijce gdzie jest

  1. <?php
  2. $dom->save($this->filename);
  3. ?>


$this->filename to ścieżka dostępu do pliku.

Prosiłbym o podpowiedź jak dodać kodowanie do xmla.

Ten post edytował em_pl 1.10.2006, 12:49:45


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mariuszn3
post 1.10.2006, 13:27:16
Post #2





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

Ostrzeżenie: (0%)
-----


Nie wiem czemu Ci wyskakuje taki błąd (u mnie wszystko przechodzi ok).. nie mniej rozszerzenie DOM w php ma dosyć ograniczono wsparcie dla innych kodowań niż utf-8, to znaczy działa ono ok z poziomu dokumentu, natomiast z poziomu węzłów w nim zawartych już nie..
Jeśli nie chcesz co chwilę napotykać na nie oczekiwany błąd używaj UTF-8, które jest domyślnym kodowaniem XML'a
Go to the top of the page
+Quote Post
em_pl
post 1.10.2006, 21:32:25
Post #3





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 10.12.2005
Skąd: Stalowa Wola / Wroclaw

Ostrzeżenie: (0%)
-----


dzięki
przerobiłem na utf-8

Problem tylko jest w tytule z polskimi fontami. Znak "Ó" wyświetlany jest nieprawidłowo. Ogólnie problem jest z ampersandami (&). Jeżeli znasz może jakiś sposób który niweluje ten problem, to będę wdzięczny za jego ujawnienie smile.gif


--------------------
Go to the top of the page
+Quote Post
mariuszn3
post 1.10.2006, 21:36:00
Post #4





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

Ostrzeżenie: (0%)
-----


a gdzie masz te błędy i jakimi metodami dodajesz tekst, który się błędnie wyświetla? ..sam fakt mi wiele nie mówi.
Go to the top of the page
+Quote Post
em_pl
post 2.10.2006, 14:57:23
Post #5





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 10.12.2005
Skąd: Stalowa Wola / Wroclaw

Ostrzeżenie: (0%)
-----


Dodaje przez metodę createTextNode w DOM w php. tekst konwertuję na utf-8 przez

  1. <?php
  2. function plCharset($string) {
  3. $iso2utf = array(
  4. "xb1" => "xc4x85", "xa1" => "xc4x84",
  5. "xe6" => "xc4x87", "xc6" => "xc4x86",
  6. "xea" => "xc4x99", "xca" => "xc4x98",
  7. "xb3" => "xc5x82", "xa3" => "xc5x81",
  8. "xf3" => "xc3xb3", "xd3" => "xc3x93",
  9. "xb6" => "xc5x9b", "xa6" => "xc5x9a",
  10. "xbc" => "xc5xba", "xac" => "xc5xb9",
  11. "xbf" => "xc5xbc", "xaf" => "xc5xbb",
  12. "xf1" => "xc5x84", "xd1" => "xc5x83"
  13. );
  14. return strtr($string, $iso2utf);
  15. }
  16. ?>


ciąg &oacute; pojawia się zamiast ó


--------------------
Go to the top of the page
+Quote Post
mariuszn3
post 2.10.2006, 15:05:51
Post #6





Grupa: Zarejestrowani
Postów: 352
Pomógł: 0
Dołączył: 22.01.2006

Ostrzeżenie: (0%)
-----


A jakie jest źródło tekstu, który konwertujesz i dodajesz do drzewa? Wygląda mi na to, że ten tekst już w sam w sobie zawiera encje.. przynajmniej nigdy się nie spotkałem z tym by ktoraś z metod rozszerzenia DOM podstawiała encje inne niż te niezbędne w html'u (za znaki &, <, >)
Go to the top of the page
+Quote Post
waldi251
post 25.01.2007, 21:56:02
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 8.11.2003

Ostrzeżenie: (0%)
-----


można prościej
sprawę załatwia: iconf('iso-8859-2','UTF-8',$text) ;


--------------------
ww
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 31.07.2025 - 08:02