Autor Zpráva
Musilda
Profil
Mám problém s generováním XML souboru, kdy je řetězec, získaný z databáze, jednou v kódování UTF-8 a jednou ASCII.
Jedná se o výpis obsahu z WordPressu a myslím si, že se jedná o to, že uživatel vkládal obsah Word dokumentu do TinyMCE editoru. Ty znaky tomu nasvědčují.
Mám nějakou možnost změnit ten řetězec, než jej přidám do XML?
Samozřejmě, že jsem zkoušel iconv a další postupy, ale nikdy jsem nedosáhl toho, aby to pak Chrome zobrazil.
_es
Profil
Musilda:
Samozřejmě, že jsem zkoušel iconv a další postupy,
No tak to „vyskúšaj“ nejako lepšie. Čo také si predstavuješ pod „kódovaním ASCII“? - Nastav konkrétne 8-bitové kódovanie. Výsledok má byť v akom kódovaní? Ťažko ti poradiť z takýchto neúplných utajovaných informácií. Konkrétny príklad textu a pod.?...
Musilda
Profil
Nerozumím, jak by ti pomohl příklad textu?
Výstup by měl být v UTF-8 a já potřebuji změnit řetězec, aby neobsahoval znaky, které nejsou v UTF-8.

Chyba, která se zobrazuje je: error on line 7602 at column 1361: Input is not proper UTF-8, indicate encoding ! Bytes: 0xC3 0xA1 0x20 0x64

Nepřišel jsem na to, jak to vyřešit a to jsem opravdu zkoušel lecos.
TomášK
Profil
Řetězce obsahující pouze ASCII znaky mají shodné kódování v UTF-8 i v ASCII. Matně si vybavuju, že už jsem někde viděl, že vkládání z Wordu do TinyMCE a problémy s kódováním. Tipuju, že ten text bude kódovaný ve windows1250, zkusil bych na to pustit ten iconv. Připadně s parametry TRANSLIT nebo IGNORE by měly zahodit neplatné znaky, nedokážeš-li je převést korektně.
Davex
Profil
Musilda:
0xC3 0xA1 0x20 0x64
Vypadá to jako korektní UTF-8. 0xC3 0xA1 je á, 0x20 je mezera a 0x64 je d. Je podezřelé, že k té chybě dojde až po několika tisících řádcích. Není třeba problém s nedostatkem operační paměti nebo velikostí bufferu, že se to celé do něj nevejde a nějaký znak složený ze dvou bajtů se na jeho hranici rozdělí vejpůl?
_es
Profil
Musilda:
aby neobsahoval znaky, které nejsou v UTF-8.
To sú aké konkrétne znaky, „ktoré nie sú v UTF-8“? UTF-8, respektíve znaková sada Unicode, obsahuje, zjednodušene, všetky znaky. Binárny zápis v UTF-8 však môže byť nesprávny (nekorektný, nevalidný, chybný a pod.)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: