2011-08-30 23 views
0

を表示することができ、私はvCardのを生成するPHPクラスを使用しています:http://www.troywolf.com/articles/php/class_vcard/PHPは、vCardの生成:変更文字エンコーディングので、アクセント付き文字が

しかし、アクセント付きの文字が正しく表示されません。私はこれが文字エンコーディングに関連していると思うが、私はそれを変更する方法を見つけることができませんでした。

すべての私のファイルはBOMなしUTF-8として保存されており、ここでは、スクリプトのoutpoutは、次のようになります。

BEGIN:VCARD 
VERSION:3.0 
CLASS:PUBLIC 
PRODID:-//www.bla.com//Version 1//EN 
REV:2011-08-30 03:19:49 
FN:Heïdi DABODFE 
N:DABODFE;Heïdi;;; 
TITLE:Directrice 
ORG:blablabla 
ADR;TYPE=work:;;2 Imp. Les Plataness;Mirepoix;;09500;France 
EMAIL;TYPE=internet,pref:[email protected] 
TEL;TYPE=work,voice:05 61 68 64 38 
PHOTO;ENCODING=BASE64;TYPE=JPEG: 
/9j/4AAQSkZJRgABAQAAAQABAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkc 
gSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTAK/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCA 
wKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LD 
RQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgA 
YABgAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwM 
CBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJS 
YnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVl 
peYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX2 
9/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAE 
CdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Nj 
c4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjp 
KWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwD 
AQACEQMRAD8A89utR1C31YaXp901ncyyD7VcxP5bz3DcvuYY+UMSAOnGepNaHiTTr2y0q2bxAks 
WpNdNEWfia4t1AJZ+hYBsbWPXJ64GMfULGTU4hqkKF94BuEAyUbABb/dJGc9icUv2SC8uYAJDDG 
5C+ZMT0A5PfvkVwH7nGmtH95YuUvJIVu7m4nFvJMIwsuQzIRk7W/iA6cccj1qSy8MyeIL42mlRP 
KyJvVCpOTjJAIyB+JxnvXqXwj/Zw1Dx/dvfXr/2b4fhO57iQ4BXr1OOP5+2c19hfD74YaZ4as47 
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 
8K3PbnJv0P/Z 

URL;TYPE=work:www.bla.com 
NOTE:bla 
TZ:-0500 
END:VCARD 

すべてのヘルプは非常に

答えて

1

を高く評価されますが、これをインポートするいくつかの異なるプログラムを試してみましたVCARD?

FN;CHARSET=utf-8:Heïdi DABODFE 
N;CHARSET=utf-8:DABODFE;Heïdi;;; 
+0

こんにちはステファンと助けてくれてありがとう...不運にもうまくいきませんでした。私はvcardを読むためにwindowsの連絡先を使用しています、あなたは別のvcardリーダーが同じ問題を抱えていないと思いますか? – Dami1

+0

このvcardを読み込むソフトウェアを使用していますか?それをエクスポートして、VCARDがどのように好きなのかのヒントがあるかどうかを確認してください。 –

+0

私はvcardを読むために "Windows Contact"を使用しています。あなたがアドバイスしたように、varsソースを修正してCHARSET = utf-8を埋め込みましたが、何も変更されませんでした。私はvcardをできるだけ多くのデバイスで使用できるようにしたいと思います。文字エンコーディングに問題がある場合は、vcardを作成する前にPHPでアクセント付きの文字を置き換えるほうがよいでしょうか?確かに最良の方法ではありませんが、それはより安全と思われます。どう思いますか? – Dami1

0

解決策ではなく、何かである:その名は「O」で始まり、「TLOOK」で終わる^^これはあなたのために働く場合

を参照してくださいしない限り、バージョン3.0のために、彼らは、UTF-8で問題ないはずですこのように、

は、UTF-8文字を含む文字列であることを$のVCFを仮定:

file_put_contents($dir.$filename, utf8_decode($vcf)); 

フランス語UTF-8文字がちょうど見つけた、Outlookで正しく表示されます。

0

プログラムが実際に標準に準拠すればよいでしょう!これは、彼らがどのように動作するかを示します。

vCard 2.1については
  • 、それはまたENCODING=QUOTED-PRINTABLEことができ、多くのプログラムが本当にそれを使用しませんので、あなたは、FN;CHARSET=utf-8;ENCODING=8BIT:Heïdi DABODFEを使用する必要があります。私はOutlookがこれをうまく食べると思うが、ThunderbirdはENCODINGの部分を拒絶する(Thunderbirdはcharset/encoding情報なしでv2.1のvCardをも輸出する)。
  • vCard 3.0の場合、それぞれのプロパティに異なる文字セットを使用する可能性はなくなりました(どのような感覚で作られましたか?)。 vCardを転送するときにContent-type MIMEヘッダーを使用する必要があります。これは、文字セットを指定する場所です(RFCの第5章を参照)。しかし、通常、vCardファイルにはContent-Typeヘッダーがありません。ほとんどのプログラムでは、FN;CHARSET=utf-8;ENCODING=8BIT:Heïdi DABODFEが2.1と同じように使用されます。
  • vCard 4.0の場合、vCardファイルの文字セットは常にUTF-8であり、これを上書きする方法はなく、MIMEヘッダー(RFCのセクション3.1)に異なる文字セットを指定することはできません。

現実的には、ほとんどのプログラムでvCardがほとんど注意を払わずに扱われ、バージョン2.1,3.0、および4. *を処理するために同じコードが使用されています。私は、RFC 6350を満たすためにUTF-8を使用してvCardを生成し、CHARSET=utf-8を使用してvCard 2.1仕様を満たし、ENCODING=8BITがThunderbirdを満たすのを避け、現在MIMEヘッダーの追加を検討中です。

2015年には、1980年代の問題のように聞こえるこの問題に対処するのがまだ難しいことは残念です。