[Catalyst] UTF-16 surrogate message when writing binary data(image)

Martin Ellison m.e at acm.org
Mon May 19 12:34:48 BST 2008


SSd2ZSBmaW5hbGx5IGhhZCB0aGUgb3Bwb3J0dW5pdHkgdG8gdGVzdCBteSBjb2RlIGEgYml0IG1v
cmUuIFRoZSAkcGljX2ltYWdlCmlzIGEgc3RyaW5nIG9mIHNvbWUga2luZCBhbmQgbm90IGEgZmls
ZSBoYW5kbGUuCgpBbHNvIEkgdHJpZWQgZG9pbmcgYmlubW9kZSBTVERPVVQgYnV0IHRoaXMgZmFp
bHMgLS0gIHRoZSBiaW5tb2RlIGNhbGwKcmV0dXJucyBmYWxzZS4KClRoZXJlIGNvdWxkIGJlIGFu
eSBiaW5hcnkgZGF0YSBpbiBteSBzdHJpbmcsIHNvIGFueSBVVEYtOC1iYWQgYnl0ZSBwYWlycyBh
cmUKZGVmaW5pdGVseSBwb3NzaWJsZS4gSSB3b3VsZCB0aGluayB0aGUgc29sdXRpb24gaXMgdG8g
aW5mb3JtIENhdGFseXN0IHRoYXQKdGhlIGRhdGEgaXMgbm90IFVURi04IGJ1dCBiaW5hcnkuIElu
IHRoZSBub3JtYWwgY2FzZSBvZiB3cml0aW5nIHRvIGEgZmlsZSwKb25lIGNhbiB1c2UgYmlubW9k
ZSB0byB0ZWxsIHBlcmwgdGhhdCB0aGUgZGF0YSBpcyBiaW5hcnkgYnV0IHRoYXQgZG9lcyBub3QK
d29yayBoZXJlLgoKSXMgdGhpcyBhIGdhcCBpbiB0aGUgQ2F0YWx5c3QgQVBJPwoKMjAwOC81LzEy
IE1lcmx5biBLbGluZSA8bWVybHluQHp5bmV0Lm5ldD46Cgo+ICBJJ3ZlIGp1c3QgYmVlbiBsb29r
aW5nIGF0IHRoaXMgc2FtZSBwcm9ibGVtIGFzIEkgc2VlIGl0IG9jY2FzaW9uYWxseSBpbgo+IG15
IGxvZ3MuIEluIG15IHRlc3QgY2FzZSB0aGUgd2FybmluZyBvY2N1cnMgd2hlbiB3cml0aW5nIHBs
YWluIEhUTUwgd2hpY2gKPiBJJ20gY2VydGFpbiBkb2Vzbid0IGNvbnRhaW4gYW55IFVURi0xNiBz
dXJyb2dhdGVzLiBBZnRlciBzb21lICh0b28gbXVjaCEpCj4gcG9raW5nIGFyb3VuZCwgSSBldmVu
dHVhbGx5IHJlYWxpc2VkIHRoYXQgdGhlIHJlcG9ydGVkIHN1cnJvZ2F0ZSBpcyBhY3R1YWxseQo+
IHRoZSBzaXplIG9mIHRoZSBvdXRwdXQgKHNvIGluIHlvdXIgZXhhbXBsZSBjYXNlLCBJJ20gZ3Vl
c3NpbmcgeW91ciBvdXRwdXQKPiB3YXMgREY5OCA9PSA1NzI0MCBieXRlcykuIFNvIHRoYXQgc3Vn
Z2VzdHMgdG8gbWUgdGhhdCBpdCdzIHNvbWV0aGluZyB0byBkbwo+IHdpdGggdGhlIEZhc3RDR0kg
cHJvdG9jb2wgaGVhZGVyLiBIb3dldmVyIGEgY3Vyc29yeSBleGFtaW5hdGlvbiBvZiB0aGUKPiBj
b250ZW50cyBvZiB0aGUgYnVmZmVyIHBhc3NlZCB0byBzeXN3cml0ZSBkb2Vzbid0IHJldmVhbCB0
aGlzIGhlYWRlciB0byBiZQo+IHByZXNlbnQsIGFuZCBhIHF1aWNrIGxvb2sgdGhyb3VnaCB0aGUg
Y2FsbGluZyBzdGFjayBkb2Vzbid0IHJldmVhbCBhbnkKPiByb3V0aW5lIHdoaWNoIG1pZ2h0IGFk
ZCBpdC4gVGhlIGxlbmd0aCBvZiB0aGUgYnVmZmVyIGlzLCBob3dldmVyLCBhbHdheXMgdGhlCj4g
bnVtYmVyIHdoaWNoIGlzIGxhdGVyIHJlcG9ydGVkIGFzIGEgVVRGLTE2IHN1cnJvZ2F0ZS4gU28g
SSBjb25jbHVkZSB0aGF0IHRoZQo+IEZhc3RDR0kgcHJvdG9jb2wgaGVhZGVyIGlzIGJlaW5nIHB1
dCBpbiBwbGFjZSBvbiBhIGxvd2VyIGxheWVyLCBvdXQgb2YgbXkKPiByZWFjaC4KPgo+IEFsbCB0
aGlzIG5lYXRseSBleHBsYWlucyB0aGUgcHJldmlvdXNseSBvcGFxdWUgZGlzdHJpYnV0aW9uIG9m
IHRoZSB3YXJuaW5nCj4gaW4gbXkgbG9ncyAob3V0cHV0IHNpemUgaXNuJ3Qgb2Z0ZW4gaW4gdGhl
IFVURi0xNiByZXNlcnZlZCByYW5nZSksIGFuZCB3aHkKPiBpdCB3YXMgc28gZGlmZmljdWx0IGZv
ciBtZSB0byBmaW5kIGEgcmVsaWFibGUsIHNpbXBsZSB0ZXN0IGNhc2UgKGV2ZXJ5IHRpbWUKPiBJ
IHRyaWVkIHRvIHNpbXBsaWZ5IHRoZSB0ZXN0IGNhc2UgdG8gaXNvbGF0ZSB0aGUgY2F1c2UsIHRo
ZSB3YXJuaW5nIHdlbnQKPiBhd2F5IGJlY2F1c2UgdGhlIHNpbXBsaWZpZWQgY2FzZSB3YXNuJ3Qg
aW4gdGhlIHJpZ2h0IHNpemUgcmFuZ2UpLgo+IFVuZm9ydHVuYXRlbHksIGl0IGFsc28gdGVsbHMg
bWUgdGhhdCBJJ20gbm90IGdvaW5nIHRvIGJlIGFibGUgdG8gZml4IGl0IG9uCj4gdGhpcyBwYXJ0
aWN1bGFyIGF0dGFjayAtIEkndmUgcnVuIG91dCBvZiB0aW1lIHNvIEknbSBnb2luZyB0byBoYXZl
IHRvIHB1dCBpdAo+IGFzaWRlIChhZ2FpbikgdW50aWwgSSBjYW4gbWFrZSBhbm90aGVyIGNoYW5j
ZSB0byBpbnZlc3RpZ2F0ZSBmdXJ0aGVyLgo+Cj4gSG9wZSBhbGwgdGhpcyBoZWxwcyAtIEkgbG9v
ayBmb3J3YXJkIHRvIHNvbWVvbmUgZWxzZSBzb2x2aW5nIGl0IGZvciBtZSA7KQo+Cj4gTWVybHlu
IEtsaW5lCj4KPgo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tCj4gKkZyb206KiBNYXJ0aW4g
RWxsaXNvbiBbbWFpbHRvOl0KPiAqU2VudDoqIDEyIE1heSAyMDA4IDEwOjA1Cj4gKlRvOiogVGhl
IGVsZWdhbnQgTVZDIHdlYiBmcmFtZXdvcmsKPiAqU3ViamVjdDoqIFJlOiBbQ2F0YWx5c3RdIFVU
Ri0xNiBzdXJyb2dhdGUgbWVzc2FnZSB3aGVuIHdyaXRpbmcgYmluYXJ5Cj4gZGF0YShpbWFnZSkK
Pgo+IFRoZSBlcnJvciBpcyBzcGVjaWZpY2FsbHkgYXQgL3Vzci9saWIvcGVybC81LjgvSU8vSGFu
ZGxlLnBtIGxpbmUgMTk5LCB3aGljaAo+IGlzIHRoZSBzZWNvbmQgc3lzd3JpdGUgY2FsbCBpbgo+
Cj4gc3ViIHN5c3dyaXRlIHsKPiAgICAgQF8gPj0gMiAmJiBAXyA8PSA0IG9yIGNyb2FrICd1c2Fn
ZTogJGlvLT5zeXN3cml0ZShCVUYgWywgTEVOIFssCj4gT0ZGU0VUXV0pJzsKPiAgICAgaWYgKGRl
ZmluZWQoJF9bMl0pKSB7Cj4gICAgICAgICBzeXN3cml0ZSgkX1swXSwgJF9bMV0sICRfWzJdLCAk
X1szXSB8fCAwKTsKPiAgICAgfSBlbHNlIHsKPiAgICAgICAgIHN5c3dyaXRlKCRfWzBdLCAkX1sx
XSk7Cj4gICAgIH0KPiB9Cj4KPiBUaGUgZXJyb3IgaXMgaW4gcHJvZHVjdGlvbiwgc28gSSBhbSBh
ZGRpbmcgc29tZSB0cmFjZSBjb2RlIHRvIGludmVzdGlnYXRlCj4gZnVydGhlciwgYnV0IHJlc3Vs
dHMgd2lsbCBuZWVkIHRvIHdhaXQgdW50aWwgSSBoYXZlIHB1c2hlZCB0aGUgY29kZS4KPgo+IDIw
MDgvNS8xMCBNYXR0IFMgVHJvdXQgPGRiaXgtY2xhc3NAdHJvdXQubWUudWs+Ogo+Cj4+IE9uIEZy
aSwgTWF5IDA5LCAyMDA4IGF0IDAyOjU4OjQxUE0gKzA4MDAsIE1hcnRpbiBFbGxpc29uIHdyb3Rl
Ogo+PiA+IElmIEkgd3JpdGUgYmluYXJ5IGRhdGEgKGEgSlBFRykgdXNpbmcgJGMtPnJlcy0+Ym9k
eSB0aGVuIEkgZ2V0IGFsbCB0aGVzZQo+PiA+IGVycm9ycwo+PiA+Cj4+ID4gIHN0ZGVycjogVVRG
LTE2IHN1cnJvZ2F0ZSAweGRmOTggYXQgL3Vzci9saWIvcGVybC81LjgvSU8vSGFuZGxlLnBtIGxp
bmUKPj4gMTk5Lgo+PiA+Cj4+ID4gTXkgY29kZSBsb29rcyBsaWtlCj4+ID4KPj4gPiAgICAgICAk
Yy0+cmVzLT5jb250ZW50X3R5cGUocXtpbWFnZS9qcGVnfSk7Cj4+ID4gICAgICRjLT5yZXMtPmhl
YWRlciggJ0NvbnRlbnQtRGlzcG9zaXRpb24nLCBxe2lubGluZX0gKTsKPj4gPiAgICAgJGMtPnJl
cy0+Ym9keSgkcGljX2ltYWdlKTsKPj4gPgo+PiA+IFByZXN1bWFibHksIHNvbWV0aGluZyBpcyBh
c3N1bWluZyB0aGF0IHRoZSBvdXRwdXQgaXMgVW5pY29kZSB0ZXh0IGFuZAo+PiB0cnlpbmcKPj4g
PiB0byBpbnRlcnByZXQgaXQgYWNjb3JkaW5nbHkuIFRoZXNlIGVycm9yIG1lc3NhZ2VzIGFyZSBh
bGwgb3ZlciB0aGUgbG9nLAo+PiA+IG1ha2luZyBpdCBkaWZmaWN1bHQgdG8gcmVhZCwgYmVzaWRl
cyBhbnkgaW1wYWN0IHRoZSBzaXR1YXRpb24gbWF5IGJlCj4+IGhhdmluZwo+PiA+IG9uIHRoZSBv
dXRwdXQuCj4+ID4KPj4gPiBJcyB0aGVyZSBhbnkgd2F5IHRvIGZpeCB0aGlzIGlzc3VlIChlZyBz
b21ldGhpbmcgbGlrZSBiaW5tb2RlKT8KPj4KPj4gTXkgYmVzdCBndWVzcyBoZXJlIGlzIHRoYXQg
JHBpY19pbWFnZSBpcywgb3IgbG9va3MgbGlrZSwgYSBmaWxlIGhhbmRsZSwKPj4gYW5kIHNvIHdo
ZW4gQ2F0YWx5c3QgaXMgc2VuZGluZyB0aGUgcmVzcG9uc2UgaXQncyBkb2luZyBzbyBieSByZWFk
aW5nCj4+IGZyb20gdGhlIGZpbGVoYW5kbGUgYW5kIHRoZSBlcnJvcidzIHR1cm5pbmcgdXAgZHVy
aW5nICRmaC0+cmVhZC4KPj4KPj4gSXQnZCBvZiBjb3Vyc2UgYmUgZWFzaWVyIGZvciB5b3UgdG8g
Y29uZmlybSB0aGlzLCBzaW5jZSB5b3UgaGF2ZSB0aGUKPj4gY29weSBvZiBJTy9IYW5kbGUucG0g
YW5kIHRoZSBsaW5lIG51bWJlciAtIG1heWJlIHlvdSBjb3VsZCBsb29rPwo+Pgo+PiBBIGdvb2Qg
d2F5IHRvIGNoZWNrIHdvdWxkIGJlIHRvIGxvb3AgcmVhZGluZyAkcGljX2ltYWdlIHlvdXJzZWxm
IGFuZAo+PiBzZWUgaWYgeW91IGdldCB0aGUgc2FtZSB3YXJuaW5nIC4uLgo+Pgo+PiAtLQo+PiAg
ICAgIE1hdHQgUyBUcm91dCAgICAgICBOZWVkIGhlbHAgd2l0aCB5b3VyIENhdGFseXN0IG9yIERC
SXg6OkNsYXNzCj4+IHByb2plY3Q/Cj4+ICAgVGVjaG5pY2FsIERpcmVjdG9yCj4+IGh0dHA6Ly93
d3cuc2hhZG93Y2F0LmNvLnVrL2NhdGFseXN0Lwo+PiAgU2hhZG93Y2F0IFN5c3RlbXMgTHRkLiAg
V2FudCBhIG1hbmFnZWQgZGV2ZWxvcG1lbnQgb3IgZGVwbG95bWVudAo+PiBwbGF0Zm9ybT8KPj4g
aHR0cDovL2NoYWluc2F3Ymx1ZXMudm94LmNvbS8KPj4gaHR0cDovL3d3dy5zaGFkb3djYXQuY28u
dWsvc2VydmVycy8KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KPj4gTGlzdDogQ2F0YWx5c3RAbGlzdHMuc2NzeXMuY28udWsKPj4gTGlzdGluZm86
IGh0dHA6Ly9saXN0cy5zY3N5cy5jby51ay9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vY2F0YWx5
c3QKPj4gU2VhcmNoYWJsZSBhcmNoaXZlOgo+PiBodHRwOi8vd3d3Lm1haWwtYXJjaGl2ZS5jb20v
Y2F0YWx5c3RAbGlzdHMuc2NzeXMuY28udWsvCj4+IERldiBzaXRlOiBodHRwOi8vZGV2LmNhdGFs
eXN0LnBlcmwub3JnLwo+Pgo+Cj4KPgo+IC0tCj4gUmVnYXJkcywKPiBNYXJ0aW4KPiAobS5lQGFj
bS5vcmcpCj4gSVQ6IGh0dHA6Ly9tZXRob2RzdXBwb3J0LmNvbSBQZXJzb25hbDogaHR0cDovL3Ro
ZXJlaXNub2VuZC5vcmcKPgo+CgoKLS0gClJlZ2FyZHMsCk1hcnRpbgoobS5lQGFjbS5vcmcpCklU
OiBodHRwOi8vbWV0aG9kc3VwcG9ydC5jb20gUGVyc29uYWw6IGh0dHA6Ly90aGVyZWlzbm9lbmQu
b3JnCi0tLS0tLS0tLS0tLS0tIG5leHQgcGFydCAtLS0tLS0tLS0tLS0tLQpBbiBIVE1MIGF0dGFj
aG1lbnQgd2FzIHNjcnViYmVkLi4uClVSTDogaHR0cDovL2xpc3RzLnNjc3lzLmNvLnVrL3BpcGVy
bWFpbC9jYXRhbHlzdC9hdHRhY2htZW50cy8yMDA4MDUxOS9iOTc4ODU3Yy9hdHRhY2htZW50Lmh0
bQo=


More information about the Catalyst mailing list