logo
09.10.2019 20:33
1
Ahoj,

dnes mi klient poslal screen z Outlooku z HTML emailu, co posílá eshop. Jsou tam speciální znaky L+SEP. V kódu je odřádkování děláno tagem <br>.

Název:  Snímek obrazovky 2019-10-09 v 20.22.46.png
Zobrazení: 252
Velikost:  108,1 KB

Klient to vidí jen v Outlooku, nikde jinde se to neukazuje ani jemu ani mně. Zkoušel jsem něco hledat, ale všude píšou, jak ty znaky odstranit v jQuery. Je HTML email, takže tohle řešení mi nepomůže.

Máte někdo nápad či zkušenost?

Co se právě děje na Webtrhu?

09.10.2019 20:48
2
Zjevně máte máte ve zdroji nějaký unicode se kterým má Outlook problémy. Nelze to vyfiltrovat jakýmkoliv editorem, případně vyfiltrovat přes JS, výsledek si uložit a nahradit ním původní HTML?
09.10.2019 21:04
3
Děkuji, Miroslave.

Opravdu tam něco bylo. Text byl třeba "Vážený zákazníku,<br>"

Ale když jsem mezi čárkou a <br> zmáčknul backspace pro smazání, tak to vlastně dvakrát nic neudělalo a až při třetím kliku to smazalo tu čárku. Takže dva neviditelné znaky.
14.10.2019 12:50
4
Klasika, posledni dobou se s podobnejma znakama potykame cimdal casteji... Zacina mi pripadat jako dobrej napad napsat si nakej automatickej cistic, kam se vlozi text a vypadne text kterej je na 100% cistej od vsech neviditelnejch znaku... Ani nevim na co vetsina z nich existuje :D
15.10.2019 13:44
5
Také se to nám to děje, např. když kopírujeme texty z Figmy nebo jiných editorů. Vždy se tam propíšou neviditelné (entry) znaky.
15.10.2019 13:51
6
mohou za to různé sanitizace na úrovni OS či editorů při vkládání z/do schránky. Podobné znaky vznikají i při přechodu mezi znakovými sadami, text field může používat jinou znakovou sadu než schránka či aplikace, která ho zpracovává. Problémy dělají i editory, které nesprávně pracují s vícebajtovými znaky při úpravách (kopírování, mazání, pohyb kurzoru) a poškodí sekvenci.

Takové čistění lze udělat jednoduše třeba přes ignore flag u iconv:
PHP kód:
iconv("UTF-8""UTF-8//IGNORE"$content);