@gigi Uw oorspronkelijke vraag kwam neer op: hoe zet ik een bestand (foto) met een Cyrillische naam over op users.telenet.be. Het concrete probleem: het lukt niet om met FileZila een foto met Cyrillische tekens over te brengen naar de eigen webruimte op users.telenet.be De foutmelding in FileZila: Andere vaststellingen: intern werkt Windows 10 met UTF-8. Bij het ontwerp van Webruimte as oorspronkelijk enkel een 7-bits codering voorzien, later werd dit aangepast naar 8 bits codering ISO 8859, ook gekend onder de naam Latin 1. Deze codering van Latin 1 en van Windows 1252 zijn grotendeels identiek. In Latin 1 zijn er geen tekens voorzien vanaf x'80' tot x'9F' (128 tot 159), terwijl Windows 1252 daar wel tekens heeft. In vorige versies van Windows werd intern Windows 1252 gebruikt. Met ander gepruts werd vastgesteld dat FileZila melde dat users.telenet.be geen UTF-8 aanvaard. Het probleem is dus kan men een betand overbrengen waarbij het eindresultaat de juiste binaire naam heeft. Men moet immers een onderscheid maken tussen hetgeen men ziet en hetgeen er effectief binair staat. Vermits het FTP programma een vertaling doet van de bestandsnamen van UTF-8 naar Latin 1 of 1252 (het blijkt 1252 te zijn), dacht ik als er nu eerst een extra vertaling gedaan wordt (negatie van de negatie) dan moet dat op zijn poten vallen. Op deze pagina kan men het volgende lezen: For instance, the combination Alt+163 would result in ú (Latin letter u with acute accent) which is at 163 in the OEM code page of CP437 or CP850, while Alt+0163 yields the character £ (symbol for the pound sterling) which is at 163 in CP1252. Een UTF-8 codering bestaat uit 1 tot 4 (of is het ondertussen 5?) 8 bits tekens. UTF-8 gebruikt 1 byte als het een ASCII teken is (decimale waarde kleiner dan 128). In het andere geval heeft elke byte van UTF-8 een decimale waarde groter dan 127. Dit wil zeggen dat elke byte van een meer-bytes codering van UTF-8 kan weergegeven worden met een Latin 1 teken. Het utf-8teken Д bezet 2 bytes met de decimale waarden 208 en 148, dit zijn in latin 1 de tekens Ð en ”. Ik verander de naam van het bestand, dat heb ik gedaan met de rename (ren) opdracht in cmd. Voor Д voerde ik ALT+0208 en ALT+0148 in. Deze twee Latin 1 tekens kreeg ik dus te zien. Ik deed eenzelfde verwerking voor de vier andere tekens. Uiteraard is intern in Windows deze naam niet meer hetzelfde als de oorspronkelijke. Intern wordt dit Latin 1 vertaald naar UTF-8. Als ik nu dat bestand overbreng met FileZila lukt dat. Elk UTF-8 teken uit deze naam kan FileZila immers vertalen naar een Latin 1 waardoor er geen foutmelding komt. Deze vertaling resulteerd opnieuw voor de decimale waarden 208 en 148 voor Д. Het enige wat je dan nog moet doen is wat @igvfer al eens geschreven heeft: in je metat content het characterset UTF-8 opgeven. Je krijgt dan alles mooi te zien in het Cyrillische op user.telent.be. Als je nu naar een andere leverancier van webruimte gaat, en deze laat toe om rechtstreeks UTF-8 bestandsnamen over te brengen, is deze vertaalslag niet alleen overbodig maan zal die een verkeerd resultaat geven.
... Meer weergeven