![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Wiecznie mam problem z Polskimi znakami.
Radze sobie jakoś z tym, ale nie rozumie wcale zagadnienia. Leciwy już iconv() nigdy nie udało mi się poprawnie uruchomić ![]() Jest jeszcze utf8_encode() i utf8_decode() też nie wiem po co to jest w sumie jak jest iconv() ktory powinien takie sprawy załatwić ![]() Dane z bazy pobierane są poprawnie w formacie UTF-8.
Mam też takąfunkcje, która wygenerowąła mi poprawny xml, jednak nie wiem czy bedzie to dobre rozwiazanie. Jak pojawi się jakiśinny znak spoza tej tablicy bedzie problem.
Ten post edytował luis2luis 19.08.2020, 09:24:15 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Nie do końca rozumiem o co Ci chodzi.
Zrobiłem mały test z takim plikiem XML (input.xml):
Wynik w output.xml:
Wygląda na to, że działa to prawidłowo. O ile mi wiadomo, polskie (i jakiekolwiek inne akcentowane) znaki nie powinny się pojawiać w pliku XML. Ale plik zapisał te znaki poprawnie w formie encji szesnastkowych. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Wynik w output.xml:
Wygląda na to, że działa to prawidłowo. O ile mi wiadomo, polskie (i jakiekolwiek inne akcentowane) znaki nie powinny się pojawiać w pliku XML. Ale plik zapisał te znaki poprawnie w formie encji szesnastkowych. Dziekuje bardzo za fatygę. Również otrzymałem taki wynik, jednak system, który pobiera ten plik odrzuca go. Dostałem komunikat: Cytat As we checked, the error was caused by the contents in Description, which should only include numbers and letters Czyli potrzebują tylko literki i cyfry ![]() Ten post edytował luis2luis 19.08.2020, 10:31:18 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A może komunikat jest mylący, a Description zawiera inny problematyczny znak?
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Tylko litery i cyfry, ale to w jakimś systemie zewnętrznym, który czyta Twój XML? Jeśli tak, to problemem (o ile czytają XML prawidłowo) nie jest jego reprezentacja, tylko treść, którą im wysyłasz. Może w ogóle nie obsługują polskich znaków, tylko mają jakiś zwykły regex [a-zA-Z0-9]+? Dziwna sprawa. Napisz coś więcej co robisz z tym XML-em.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
A może komunikat jest mylący, a Description zawiera inny problematyczny znak? Pole description to znacznik z opisem. Problemem są tu właśnie Polskie znaki zapisane w sposób: Łódź Myślę, żeby Polskie znaczki usunąć albo zapisać je nie za pomocą formatu: Ł |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Musisz rozdzielić dwie rzeczy. Format zapisu a treść to są osobne sprawy.
Zakładam, że system, który konsumuje Twój XML działa prawidłowo. Jeśli tak jest, to sposób zapisu - o ile zgodny ze standardami XML - ich nie powinien obchodzić. Interesuje ich wyłącznie treść poszczególnych pól, np. Description. Trudno z Twojego posta wywnioskować o co chodzi z tym Description, ale trochę dziwne mi się wydaje, żeby pole z opisem (ang, description) przyjmowało tylko litery i cyfry. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
Musisz rozdzielić dwie rzeczy. Format zapisu a treść to są osobne sprawy. Zakładam, że system, który konsumuje Twój XML działa prawidłowo. Jeśli tak jest, to sposób zapisu - o ile zgodny ze standardami XML - ich nie powinien obchodzić. Interesuje ich wyłącznie treść poszczególnych pól, np. Description. Trudno z Twojego posta wywnioskować o co chodzi z tym Description, ale trochę dziwne mi się wydaje, żeby pole z opisem (ang, description) przyjmowało tylko litery i cyfry. Description to jest jeden z Tagów. I problemem jest treść tego znacznika a mianowicie Polskie znaki w nim użyte zapisasne w sposób: Łódź
Ten post edytował luis2luis 19.08.2020, 11:00:28 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
A próbowałeś na sucho wysłać te polskie znaki w różnych formach, czyli bezpośrednio, dziesiętnie i heksadecymalnie?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Chodziło mi o to, czy już po zamianie na encje nie pozostaje jakiś znak, który skutkuje takim komunikatem (on jest przyczyną, a nie encje).
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 0 Dołączył: 25.11.2015 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Wg komunikatu w tagu tym mogą być tylko cyfry i litery więc znak np & który jest częścią znaku powoduje błąd. Przeczytaj jeszcze raz to, co napisałem wyżej. Jeżeli jest tak jak mówisz, to ten system ma kompletnie bezsensowną walidację. Walidacja oparta na reprezentacji wartości jest idiotyczna. Jestem na 99% pewien, że nie o to chodzi. Dobrze, więc z tego co mówisz, ten system pozwala na litery i cyfry. Czy testujesz na takiej wartości, tj. na literach i cyfrach? Bo jak wstawiłem powyższy przykład ze świnką, to testowałeś na nim, a przecież tam jest spacja. Spacja nie należy ani do liter, ani do cyfr, prawda? Zrób prosty test - spróbuj wstawić wartość abc jako Description i zobacz czy przyjmie. Pewnie przyjmie. To teraz spróbuj wstawić wartość & #97;& #98;& #99; (usuń spacje - musiałem je wstawić, bo ten durny system forum ślepo zamienia wszystko), która jest po prostu inaczej zapisanym abc. Ten post edytował SmokAnalog 19.08.2020, 13:21:41 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.05.2025 - 06:07 |