2011-12-23 19 views
7

Ho implementato una vCard su un sito Web. Il problema è che i caratteri speciali non vengono analizzati correttamente su Windows.Codifica UTF8 con vCard in Windows

Posso farlo funzionare correttamente per Mac, ma non appena apro un vcf in Windows (Contatti Windows) viene incasinato. Quando apro il vcf nel Blocco note, mostra normalmente i caratteri.

Ho provato tutte le versioni vcf che ho trovato (2.1,3.0,4.0). Ho usato charset-utf-8 nella mia intestazione content-type (text/x-vcard; charset: utf-8). Ho usato N; CHARSET = utf-8: (e per gli altri tag).

Tutto inutilmente.

Qualcuno ha una soluzione per questo? Grazie per condividere la vostra intuizione.

intestazioni utilizzate:

header("Content-type: text/x-vcard; charset=utf-8"); 
header("Content-Disposition: attachment; filename=".$this->filename.".vcf"); 
header("Pragma: public"); 
+1

L'intestazione è un po 'puzzolente, hai provato Content-type: text/x-vcard; charset = "utf-8" –

+0

@EugenRieck ancora un refuso: ** text/x-vcard; charset = utf-8 ** –

+0

Grazie Eugen e Joop. Sfortunatamente questo non ha aiutato. Come puoi vedere nella mia domanda questa è una delle cose che ho già provato. Ho aggiunto le intestazioni utilizzate alla domanda. – hphoeksma

risposta

1

rispetto 2 file, uno che lavora da un servizio e la mia diversa. È emerso che la versione di lavoro dell'altro servizio utilizzava Content-Type: text/x-vcard; charset=iso-8859-1.

5

ho scoperto che invece di fornire ;CHARSET=utf-8 nel campo vCard, io invece forniti ;CHARSET=windows-1252, che ha provocato l'apertura vCard correttamente in Outlook 2010.

non una soluzione per tutti, ma spero che questo aiuta qualcuno.

+2

Nel mio caso il contenuto è stato codificato con utf-8 che applica un'intestazione utf-8 alla fine.Ora controllo Windows OS -> then iso content encoding, else utf-8 encoding. Funziona bene. – hphoeksma

+0

Grazie !! Ha funzionato per me, quando niente sembrava funzionare! – 118218

1

Utilizzare ISO-8859-1 e si dovrebbe andare bene. Assicurati solo che ogni parte della catena utilizzi tale codifica (il file .vcf, le dichiarazioni di codifica nel file .vcf e l'intestazione).

Intestazione:

Content-Type: text/x-vcard; charset=iso-8859-1 

vCard (ad esempio, deve essere salvato con la codifica iso-8859-1):

N;CHARSET=iso-8859-1:Übermann 

testato su Windows, OS X, iOS e Android.

+1

Quale versione stai usando? Sto usando la versione 3.0 con Windows 8 e non funziona –

+0

Sto usando 3.0, vedi http://pastebin.com/HBW9LgJi per un esempio. Testato sui miei clienti Outlook (versione sconosciuta) su Windows 8. Si è verificato che i dati effettivi si trovino anche in ISO-8859-1? Sto usando utf8_decode() nel mio script (PHP) –

+0

attualmente sto usando node.js. Ad ogni modo, per Windows, iso-8859-1 o utf-8 è lo stesso (non funziona), ma se leggo la stessa carta con Android, allora va bene. Spero che risolvono questo bug .. Sto anche usando la versione 3.0 di vCard. –

1

per me lavorare con UTF-8 ed essere leggibile per Mac OS X tutti i caratteri polacchi come ĘĄĆŻŹŃŁÓŚ ęąćżźńłóś è stato sufficiente per passare per dichiarare VERSION:3.0

+0

non funziona per me (outlook 2013). Potete fornire una vcard completa che potrei usare come riferimento? –

+0

@ JesperRønn-Jensen http://pastebin.com/AjL3Gdwe – andi

5

Per rendere importazione di Outlook vCard UTF-8 è necessario aprire le opzioni di Outlook, andare a Advanced>Opzioni internazionali e quindi selezionare UTF-8 per le e-mail in uscita e le vCard in uscita ... E voilà - importa i lavori!

Non è ovvio, che è necessario impostare le opzioni di esportazione per l'importazione di installazione ...? Grazie Microsoft: P

+0

Questo è facile e funziona alla grande con un Outlook tedesco 2016 su un tedesco Windows 10 con vCard UTF-8. L'unica opzione che ho dovuto cambiare era l'opzione "export/outgoing" per vCard a "Unicode (UTF-8)". E hai ragione @ user808667, questo non è proprio così ovvio! – PeterCo

Problemi correlati