m.444lu.co show.php,PHP生成的Vcard:更改字符編碼,可以顯示重音字符。

我使用一個PHP類來生成vcard: http://www.troywolf.com/articles/php/class_vcard/。

But accented character do not show properly. I guess this is related to the character encoding, but I have been unable to find a way to change it.

但有重音的角色沒有表現得很好。我想這與字符編碼有關,但我一直找不到方法來改變它。

All my files are saved as UTF8 without BOM and here is what the outpout of the script looks like:

我所有的文件都保存為UTF8,沒有BOM,下面是腳本的輸出:

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:contact@bla.com

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

Any help is much appreciated

非常感謝您的幫助。

3 个解决方案

#1

1

Did you try some different programs to import this VCARD? For Version 3.0 they should be fine with utf-8 unless its name starts with "O" and ends with "tlook" ^^

你有沒有嘗試不同的程序來導入這個VCARD?對於3.0版本,他們應該使用utf-8,除非它的名字以“O”開頭,以“tlook”結尾。

See if this works for you:

看看這對你是否有用:

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

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

#2

0

The solution is rather something like this,

解是這樣的,

assuming $vcf to be a string containing utf-8 characters:

假設$vcf為包含utf-8字符的字符串:

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

French utf-8 characters get displayed properly in Outlook, just found out.

法國utf-8字符在Outlook中正確顯示,剛剛發現。

#3

0

It would be good if programs would really follow the standards! This is how they should work:

如果程序真的能遵循標准,那就太好了!他們應該這樣工作:

For vCard 2.1, you should use FN;CHARSET=utf-8;ENCODING=8BIT:Heïdi DABODFE, because it could also be ENCODING=QUOTED-PRINTABLE and many programs really do use that. I think Outlook eats this well, however Thunderbird rejects the ENCODING part (Thunderbird also exports supposedly v2.1 vCards without charset/encoding information).

對於vCard 2.1,您應該使用FN;CHARSET=utf-8;編碼=8BIT: Heidi DABODFE,因為它也可以編碼=QUOTED-PRINTABLE,許多程序確實使用它。我認為Outlook吃得很好,但是雷鳥拒絕編碼的部分(雷鳥也出口據說沒有字符集/編碼信息的v2.1 vCards)。

For vCard 3.0 the possibility of using a different charset for each property disappeared (what sense did it made?). You are to use the Content-type MIME header when transferring the vCard and that's where the charset is to be specified (says section 5 of the RFC). However, you don't usually find Content-type headers in vCard files and most programs just use FN;CHARSET=utf-8;ENCODING=8BIT:Heïdi DABODFE as it was for 2.1.

對於vCard 3.0,對每個屬性使用不同字符集的可能性消失了(這是什么感覺?)在傳輸vCard時,您將使用內容類型的MIME報頭,這就是要指定charset的地方(說RFC的第5節)。但是,在vCard文件中通常不會找到Content-type頭文件,大多數程序只使用FN;CHARSET=utf-8;編碼=8BIT: Heidi DABODFE,它是2.1。

For vCard 4.0 the charset for vCard files is always UTF-8 and there is no way to override this and it is invalid to specify a different charset in a MIME header (section 3.1 of the RFC).

對於vCard 4.0, vCard文件的字符集總是UTF-8,並且沒有辦法覆蓋它,並且在MIME報頭中指定不同的字符集是無效的(RFC的3.1節)。

The reality is that most programs treat vCard with very little care and use the same code to handle versions 2.1, 3.0 and 4.*. I generate vCard using UTF-8 to satisfy RFC 6350, use CHARSET=utf-8 to satisfy vCard 2.1 specification, avoid ENCODING=8BIT to satisfy Thunderbird and I'm currently considering adding a MIME header.

現實情況是,大多數程序處理vCard時都非常小心,使用相同的代碼來處理版本2.1、3.0和4。我用UTF-8生成vCard來滿足RFC 6350,使用CHARSET= UTF-8來滿足vCard 2.1規范,避免編碼=8BIT來滿足Thunderbird,我目前正在考慮添加一個MIME標題。

It is unfortunate that in 2015 there is still difficulty in dealing with this problem which sounds more like a problem from the 1980s.

不幸的是,在2015年,解決這個問題仍有困難,這聽起來更像是上世紀80年代的一個問題。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值