witam,
mam plik XML (generowany dynamicznie - czytajac dane z bazy MySQL).
nastepnie za pomoca skryptu php odczytuje XML.
problem ze w stringach czasami mam znaki ® lub ™ zapisane jako "®" oraz "™" - powoduje to wywalenie sie XML, nie wiem czemu. skorzystalem z funkcji ktora "®" itp zamieni mi na normalne znaki.

uzylem funkcji
  1. <?php
  2. function html_entity_decode_utf8($string)
  3. {
  4. static $trans_tbl;
  5.  
  6. // replace numeric entities
  7. $string = preg_replace('~&#x([0-9a-f]+);~ei', 'code2utf(hexdec("1"))', $string);
  8. $string = preg_replace('~&#([0-9]+);~e', 'code2utf(1)', $string);
  9.  
  10. // replace literal entities
  11. if (!isset($trans_tbl))
  12. {
  13. $trans_tbl = array();
  14.  
  15. foreach (get_html_translation_table(HTML_ENTITIES) as $val=>$key)
  16. $trans_tbl[$key] = utf8_encode($val);
  17. }
  18.  
  19. return strtr($string, $trans_tbl);
  20. }
  21.  
  22. // Returns the utf string corresponding to the unicode value (from php.net, courtesy - romans@void.lv)
  23. function code2utf($num)
  24. {
  25. if ($num < 128) return chr($num);
  26. if ($num < 2048) return chr(($num >> 6) + 192) . chr(($num & 63) + 128);
  27. if ($num < 65536) return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
  28. if ($num < 2097152) return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128);
  29. return '';
  30. }
  31. ?>


funkcja zamienia znaki HTML typu "&reg;" na zwykle znaki, ale konwertuje mi to do UTF-8, a cala strone mam w ISO-8859-2, wiec wywala krzaki. probowalem skonwertowac UTF-8 na ISO ale tez mi nie wychodzilo. 2 dni nad tym siedze.

prosze o jakies wskazowki jak przerobic znaki HTML na zwykle znaki ale w ISO-8859-2.

z gory dziekuje za jakies wskazowki.

pozdr.