Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Polskie znaki w tablicy
Forum PHP.pl > Forum > PHP > Frameworki
kusiu
Witam,

Mam dziwny problem. Otóż mam taką sobie tablice, która jest wynikiem zapytania:

  1. echo "<pre>";
  2. print_r($wynik);
  3. echo "</pre>";


  1. sfOutputEscaperArrayDecorator Object
  2. (
  3. [count:private] => 12
  4. [value:protected] => Array
  5. (
  6. [0] => Array
  7. (
  8. [kodregionu] => 1
  9. [0] => 1
  10. [region] => BIELSKO-BIAŁA
  11. [1] => BIELSKO-BIAŁA
  12. )
  13.  
  14. [1] => Array
  15. (
  16. [kodregionu] => 2
  17. [0] => 2
  18. [region] => WROCŁAW
  19. [1] => WROCŁAW
  20. )
  21.  
  22. [2] => Array
  23. (
  24. [kodregionu] => 3
  25. [0] => 3
  26. [region] => OPOLE
  27. [1] => OPOLE
  28. )
  29.  
  30. [3] => Array
  31. (
  32. [kodregionu] => 4
  33. [0] => 4
  34. [region] => KATOWICE WSCHÓD
  35. [1] => KATOWICE WSCHÓD
  36. )
  37.  
  38. [4] => Array
  39. (
  40. [kodregionu] => 7
  41. [0] => 7
  42. [region] => ŁÓDŹ
  43. [1] => ŁÓDŹ
  44. )
  45.  
  46. [5] => Array
  47. (
  48. [kodregionu] => 9
  49. [0] => 9
  50. [region] => WARSZAWA
  51. [1] => WARSZAWA
  52. )
  53.  
  54. [6] => Array
  55. (
  56. [kodregionu] => 11
  57. [0] => 11
  58. [region] => TORUŃ
  59. [1] => TORUŃ
  60. )
  61.  
  62. [7] => Array
  63. (
  64. [kodregionu] => 16
  65. [0] => 16
  66. [region] => OLSZTYN
  67. [1] => OLSZTYN
  68. )
  69.  
  70. [8] => Array
  71. (
  72. [kodregionu] => 17
  73. [0] => 17
  74. [region] => BIAŁYSTOK
  75. [1] => BIAŁYSTOK
  76. )
  77.  
  78. [9] => Array
  79. (
  80. [kodregionu] => 18
  81. [0] => 18
  82. [region] => KIELCE
  83. [1] => KIELCE
  84. )
  85.  
  86. [10] => Array
  87. (
  88. [kodregionu] => 20
  89. [0] => 20
  90. [region] => KATOWICE ZACHÓD
  91. [1] => KATOWICE ZACHÓD
  92. )
  93.  
  94. [11] => Array
  95. (
  96. [kodregionu] => 21
  97. [0] => 21
  98. [region] => KALISZ
  99. [1] => KALISZ
  100. )
  101.  
  102. )
  103.  
  104. [escapingMethod:protected] => esc_specialchars
  105. )
  106.  


I teraz wyświetlam ją w ten sposób:

  1. <?php foreach($wynik as $k => $v): ?>
  2. <tr>
  3. <td><?php echo $wynik[$k]['region'] ?></td>
  4. <td><?php echo $wynik[$k]['kodregionu'] ?></td>
  5. </tr>
  6. <?php endforeach;?>


I teraz bład polega na tym, że nie wyświetlają się nazwy regionów posiadające polski znak



Kompletnie tego nie rozumiem, proszę o POMOC



XianN
prawdopodobnie uzywasz kodowania ISO-8859-2...

Escaper masz ustawiony na uzywanie htmlspecialchars, ktory nie obsluguje tego kodowania.

Jesli nie myle w zgadywaniu kodowania to masz 2 opcje:
1) zmienic kodowanie na UTF-8 (zalecane)
2) (na szybko) obejsc sfOutputEscaperArrayDecorator:
zamiast:
  1. <?php foreach($wynik as $k => $v): ?>

wstaw:
  1. <?php foreach($sf_data->getRaw('wynik') as $k => $v): ?>

Tylko pamietaj, ze jesli userzy moga te dane edytowac to pozbywasz sie zabezpieczenia przed szkodnikami.

Nie jestem pewien czy podalem Ci dobra metode w 2 opcji, ale powinienes szybko znalezc wlasciwa w API sf. Nie mam juz sily tego sprawdzac tongue.gif

Dobranoc.
kusiu
Cytat(XianN @ 26.06.2010, 00:56:47 ) *
prawdopodobnie uzywasz kodowania ISO-8859-2...

Escaper masz ustawiony na uzywanie htmlspecialchars, ktory nie obsluguje tego kodowania.

Jesli nie myle w zgadywaniu kodowania to masz 2 opcje:
1) zmienic kodowanie na UTF-8 (zalecane)
2) (na szybko) obejsc sfOutputEscaperArrayDecorator:
zamiast:
  1. <?php foreach($wynik as $k => $v): ?>

wstaw:
  1. <?php foreach($sf_data->getRaw('wynik') as $k => $v): ?>

Tylko pamietaj, ze jesli userzy moga te dane edytowac to pozbywasz sie zabezpieczenia przed szkodnikami.

Nie jestem pewien czy podalem Ci dobra metode w 2 opcji, ale powinienes szybko znalezc wlasciwa w API sf. Nie mam juz sily tego sprawdzac tongue.gif

Dobranoc.


Faktycznie używam innego kodowanie, mianowicie windows-1250 a to dlatego że łącze się z baza ms sql ktora ma takie kodowanie i zmiana na utf-8 odpada.
Pozmieniałem wszędzie gdzie się dało w bibliotekach symfony "utf-8" na "windows-1250" i śmiga poprawnie.
Dzięki
madeyt
Jest jeszcze jedno wyjscie z tej sytuacji, bardziej globalne:

w settings.yml mozna wylaczyc escaping strategy, wtedy nie beda ginely polskie znaki przy operowaniu funkcja htmlspecialchars():

  1. all:
  2. .settings:
  3. escaping_strategy: true
  4. escaping_method: ESC_RAW


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.