RE: Opening & writing to UTF-8 files; copyright symbol again -- solution

[email protected] (Shelley Doljack) Fri, 13 Nov 2015 22:29:54 +0000
Newsgroups perl.perl4lib
Message-ID <CY1PR02MB1133CD210AD6BBB248BEF18DA0110@CY1PR02MB1133.namprd02.prod.outlook.com>
--_000_CY1PR02MB1133CD210AD6BBB248BEF18DA0110CY1PR02MB1133namp_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64

SGV5LCB0aGF04oCZcyBteSBwb3N0ISBBbnl3YXlzLCBJIGhhdmVu4oCZdCByZWFsbHkgbG9va2Vk
IGludG8gd2hhdCB5b3VyIHByb2JsZW0gaXMsIGJ1dCB3aGVuIHlvdSBzYWlkIHRoYXQgdGhlIGNv
cHlyaWdodCBjaGFyYWN0ZXIgaXMgZ2V0dGluZyB0cmFuc2Zvcm1lZCB0byBBOSBldmVuIHRob3Vn
aCBpdCBpcyBzdXBwb3NlZGx5IHN0b3JlZCBhcyBDMiBBOSBpbiB0aGUgZGF0YWJhc2UsIGl0IG1h
ZGUgbWUgdGhpbmsgb2YgaG93IHRoZXJlIGNhbiBiZSB0d28gVVRGLTggcmVwcmVzZW50YXRpb25z
IGZvciB0aGUgc2FtZSBjaGFyYWN0ZXIgaW4gc29tZSBzZWN0aW9ucyBvZiB0aGUgVW5pY29kZSBz
ZXQuIEkgd29uZGVyIGlmIHRoYXQgaXMgc29tZWhvdyBoYXBwZW5pbmcgZm9yIHlvdS4NCg0KU2hl
bGxleQ0KDQoNClNoZWxsZXkgRG9samFjaw0KRGlzY292ZXJ5IE1ldGFkYXRhIExpYnJhcmlhbg0K
TWV0YWRhdGEgRGVwdC4sIExhdGhyb3AgTGlicmFyeQ0KU3RhbmZvcmQgVW5pdmVyc2l0eSBMaWJy
YXJpZXMNCjY1MC03MjUtMDE2Nw0Kc2RvbGphY2tAc3RhbmZvcmQuZWR1DQoNCg0KDQpGcm9tOiBI
aWdoc21pdGgsIEFubmUgTCBbbWFpbHRvOmhpc21pdGhAbGlicmFyeS50YW11LmVkdV0NClNlbnQ6
IEZyaWRheSwgTm92ZW1iZXIgMTMsIDIwMTUgMjowNSBQTQ0KVG86IHBlcmw0bGliQHBlcmwub3Jn
DQpTdWJqZWN0OiBPcGVuaW5nICYgd3JpdGluZyB0byBVVEYtOCBmaWxlczsgY29weXJpZ2h0IHN5
bWJvbCBhZ2FpbiAtLSBzb2x1dGlvbg0KDQpJIHNob3VsZCBwcm9iYWJseSBzYXksIOKAnGFwcGFy
ZW50IHNvbHV0aW9u4oCdIOKAmGNhdXNlIGNoYXJhY3RlciBzZXQgaXNzdWVzIG5ldmVyIHNlZW0g
dG8gZW5kLg0KDQpIb3dldmVyLCBjb21iaW5pbmcgSm9uIEdvcm1hbuKAmXMgcmVjb21tZW5kYXRp
b24gd2l0aCBzb21lIEdvb2dsaW5nLCBJIGdldDoNCg0KbXkgJG91dGZpbGU9JzQ3ODgwMjIuZWRp
dGVkLmJpYic7DQpvcGVuIChteSAkb3V0cHV0X21hcmMsICc+JywgJG91dGZpbGUpIG9yIGRpZSAi
Q291bGRuJ3Qgb3BlbiBmaWxlICQhIiA7DQpiaW5tb2RlKCRvdXRwdXRfbWFyYywgJzp1dGY4Jyk7
DQoNClRoZSBvcGVuIHN0YXRlbWVudCBtYXkgbm90IGJlIHF1aXRlIGNvcnJlY3QsIGFzIEkgYW0g
bm90IGZhbWlsaWFyIHdpdGggdGhlIG1vcmUgY3VycmVudCB0ZWNobmlxdWVzIGZvciBvcGVuaW5n
IGZpbGUgaGFuZGxlcyB0aGF0IEpvaG4gbWVudGlvbmVkLiBIb3dldmVyLCB3aGVuIEkgdXNlIHRo
b3NlIGluc3RydWN0aW9ucyB0byBvcGVuIHRoZSBvdXRwdXQgZmlsZSByYXRoZXIgdGhhbiB3aGF0
IEkgaGFkIGJlZm9yZSwgdGhlIGNvcHlyaWdodCBzeW1ib2wgZG9lcyBpbmRlZWQgY29tZSBhY3Jv
c3MgYXMgQzIgQTkgYXMgaXQgd2FzIGluIHRoZSBvcmlnaW5hbCByZWNvcmQuIEkgZGlkbuKAmXQg
d2FudCB0byB1c2UgdGhlIHV0ZjgsIGJlY2F1c2UgSeKAmXZlIHRyaWVkIHRoYXQgYmVmb3JlIGFu
ZCBlbmRlZCB1cCB3aXRoIGRvdWJsZS1lbmNvZGluZyAoYW5kIGEgcmVhbCBtZXNzKS4gQnV0IEni
gJlsbCBjb250aW51ZSB0ZXN0aW5nLg0KDQpUaGUgcmVzdWx0cyBvZiB0aGUgZ29vZ2xpbmcgSSBy
ZWZlcnJlZCB0byBjYW4gYmUgZm91bmQgYXQ6IGh0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZm9y
dW0vIyF0b3BpYy9wZXJsLnBlcmw0bGliL3N5N2hxaUJRMXlNDQoNCg0KQW5uZSBMLiBIaWdoc21p
dGgNCkRpcmVjdG9yLCBDb25zb3J0aWEgU3lzdGVtcw0KVEFNVSBMaWJyYXJpZXMNCjUwMDAgVEFN
VQ0KQ29sbGVnZSBTdGF0aW9uLCBUWCAgIDc3ODQzLTUwMDANCjk3OSA4NjIgNDIzNA0KaGlzbWl0
aEB0YW11LmVkdTxtYWlsdG86aGlzbWl0aEB0YW11LmVkdT4NCg0K

--_000_CY1PR02MB1133CD210AD6BBB248BEF18DA0110CY1PR02MB1133namp_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64

PGh0bWwgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89InVy
bjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIgeG1sbnM6dz0idXJuOnNjaGVt
YXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgeG1sbnM6bT0iaHR0cDovL3NjaGVtYXMubWlj
cm9zb2Z0LmNvbS9vZmZpY2UvMjAwNC8xMi9vbW1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
VFIvUkVDLWh0bWw0MCI+DQo8aGVhZD4NCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg
Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRhIG5hbWU9IkdlbmVyYXRv
ciIgY29udGVudD0iTWljcm9zb2Z0IFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPg0KPHN0eWxl
PjwhLS0NCi8qIEZvbnQgRGVmaW5pdGlvbnMgKi8NCkBmb250LWZhY2UNCgl7Zm9udC1mYW1pbHk6
IkNhbWJyaWEgTWF0aCI7DQoJcGFub3NlLTE6MiA0IDUgMyA1IDQgNiAzIDIgNDt9DQpAZm9udC1m
YWNlDQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7DQoJcGFub3NlLTE6MiAxNSA1IDIgMiAyIDQgMyAy
IDQ7fQ0KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8NCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWws
IGRpdi5Nc29Ob3JtYWwNCgl7bWFyZ2luOjBpbjsNCgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7DQoJ
Zm9udC1zaXplOjExLjBwdDsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJpZjt9DQph
OmxpbmssIHNwYW4uTXNvSHlwZXJsaW5rDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xv
cjojMDU2M0MxOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0KYTp2aXNpdGVkLCBzcGFu
Lk1zb0h5cGVybGlua0ZvbGxvd2VkDQoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsNCgljb2xvcjoj
OTU0RjcyOw0KCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQ0Kc3Bhbi5FbWFpbFN0eWxlMTcN
Cgl7bXNvLXN0eWxlLXR5cGU6cGVyc29uYWw7DQoJZm9udC1mYW1pbHk6IkNhbGlicmkiLHNhbnMt
c2VyaWY7DQoJY29sb3I6d2luZG93dGV4dDt9DQpzcGFuLkVtYWlsU3R5bGUxOA0KCXttc28tc3R5
bGUtdHlwZTpwZXJzb25hbC1yZXBseTsNCglmb250LWZhbWlseToiQ2FsaWJyaSIsc2Fucy1zZXJp
ZjsNCgljb2xvcjp3aW5kb3d0ZXh0Ow0KCWZvbnQtd2VpZ2h0Om5vcm1hbDsNCglmb250LXN0eWxl
Om5vcm1hbDt9DQouTXNvQ2hwRGVmYXVsdA0KCXttc28tc3R5bGUtdHlwZTpleHBvcnQtb25seTsN
Cglmb250LXNpemU6MTAuMHB0O30NCkBwYWdlIFdvcmRTZWN0aW9uMQ0KCXtzaXplOjguNWluIDEx
LjBpbjsNCgltYXJnaW46MS4waW4gMS4waW4gMS4waW4gMS4waW47fQ0KZGl2LldvcmRTZWN0aW9u
MQ0KCXtwYWdlOldvcmRTZWN0aW9uMTt9DQotLT48L3N0eWxlPjwhLS1baWYgZ3RlIG1zbyA5XT48
eG1sPg0KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0iZWRpdCIgc3BpZG1heD0iMTAyNiIgLz4NCjwv
eG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPg0KPG86c2hhcGVsYXlvdXQg
djpleHQ9ImVkaXQiPg0KPG86aWRtYXAgdjpleHQ9ImVkaXQiIGRhdGE9IjEiIC8+DQo8L286c2hh
cGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+DQo8L2hlYWQ+DQo8Ym9keSBsYW5nPSJFTi1VUyIg
bGluaz0iIzA1NjNDMSIgdmxpbms9IiM5NTRGNzIiPg0KPGRpdiBjbGFzcz0iV29yZFNlY3Rpb24x
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhleSwgdGhhdOKAmXMgbXkgcG9zdCEgQW55d2F5cywg
SSBoYXZlbuKAmXQgcmVhbGx5IGxvb2tlZCBpbnRvIHdoYXQgeW91ciBwcm9ibGVtIGlzLCBidXQg
d2hlbiB5b3Ugc2FpZCB0aGF0IHRoZSBjb3B5cmlnaHQgY2hhcmFjdGVyIGlzIGdldHRpbmcgdHJh
bnNmb3JtZWQgdG8gQTkgZXZlbiB0aG91Z2ggaXQgaXMgc3VwcG9zZWRseSBzdG9yZWQgYXMgQzIg
QTkgaW4gdGhlIGRhdGFiYXNlLCBpdCBtYWRlIG1lIHRoaW5rDQogb2YgaG93IHRoZXJlIGNhbiBi
ZSB0d28gVVRGLTggcmVwcmVzZW50YXRpb25zIGZvciB0aGUgc2FtZSBjaGFyYWN0ZXIgaW4gc29t
ZSBzZWN0aW9ucyBvZiB0aGUgVW5pY29kZSBzZXQuIEkgd29uZGVyIGlmIHRoYXQgaXMgc29tZWhv
dyBoYXBwZW5pbmcgZm9yIHlvdS48bzpwPjwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwi
PjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+U2hlbGxleTxvOnA+
PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8
cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29O
b3JtYWwiPlNoZWxsZXkgRG9samFjazxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1h
bCI+RGlzY292ZXJ5IE1ldGFkYXRhIExpYnJhcmlhbjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+TWV0YWRhdGEgRGVwdC4sIExhdGhyb3AgTGlicmFyeSA8bzpwPjwvbzpwPjwv
cD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlN0YW5mb3JkIFVuaXZlcnNpdHkgTGlicmFyaWVzPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj42NTAtNzI1LTAxNjc8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPnNkb2xqYWNrQHN0YW5mb3JkLmVkdTxvOnA+PC9v
OnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8cCBj
bGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3Jt
YWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0KPGRpdj4NCjxkaXYgc3R5bGU9ImJvcmRlcjpub25l
O2JvcmRlci10b3A6c29saWQgI0UxRTFFMSAxLjBwdDtwYWRkaW5nOjMuMHB0IDBpbiAwaW4gMGlu
Ij4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxiPkZyb206PC9iPiBIaWdoc21pdGgsIEFubmUgTCBb
bWFpbHRvOmhpc21pdGhAbGlicmFyeS50YW11LmVkdV0NCjxicj4NCjxiPlNlbnQ6PC9iPiBGcmlk
YXksIE5vdmVtYmVyIDEzLCAyMDE1IDI6MDUgUE08YnI+DQo8Yj5Ubzo8L2I+IHBlcmw0bGliQHBl
cmwub3JnPGJyPg0KPGI+U3ViamVjdDo8L2I+IE9wZW5pbmcgJmFtcDsgd3JpdGluZyB0byBVVEYt
OCBmaWxlczsgY29weXJpZ2h0IHN5bWJvbCBhZ2FpbiAtLSBzb2x1dGlvbg0KPG86cD48L286cD48
L3A+DQo8L2Rpdj4NCjwvZGl2Pg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286
cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj5JIHNob3VsZCBwcm9iYWJseSBzYXksIOKAnGFw
cGFyZW50IHNvbHV0aW9u4oCdIOKAmGNhdXNlIGNoYXJhY3RlciBzZXQgaXNzdWVzIG5ldmVyIHNl
ZW0gdG8gZW5kLg0KPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZu
YnNwOzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPkhvd2V2ZXIsIGNvbWJpbmluZyBK
b24gR29ybWFu4oCZcyByZWNvbW1lbmRhdGlvbiB3aXRoIHNvbWUgR29vZ2xpbmcsIEkgZ2V0Ojxv
OnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+
DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291
cmllciBOZXcmcXVvdDsiPm15ICRvdXRmaWxlPSc0Nzg4MDIyLmVkaXRlZC5iaWInOzxvOnA+PC9v
OnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxzcGFuIHN0eWxlPSJmb250LWZh
bWlseTomcXVvdDtDb3VyaWVyIE5ldyZxdW90OyI+b3BlbiAobXkgJG91dHB1dF9tYXJjLCAnJmd0
OycsICRvdXRmaWxlKSBvciBkaWUgJnF1b3Q7Q291bGRuJ3Qgb3BlbiBmaWxlICQhJnF1b3Q7IDs8
bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48c3BhbiBzdHlsZT0i
Zm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPmJpbm1vZGUoJG91dHB1dF9tYXJj
LCAnOnV0ZjgnKTs8bzpwPjwvbzpwPjwvc3Bhbj48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48
c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6JnF1b3Q7Q291cmllciBOZXcmcXVvdDsiPjxvOnA+Jm5i
c3A7PC9vOnA+PC9zcGFuPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSBvcGVuIHN0YXRl
bWVudCBtYXkgbm90IGJlIHF1aXRlIGNvcnJlY3QsIGFzIEkgYW0gbm90IGZhbWlsaWFyIHdpdGgg
dGhlIG1vcmUgY3VycmVudCB0ZWNobmlxdWVzIGZvciBvcGVuaW5nIGZpbGUgaGFuZGxlcyB0aGF0
IEpvaG4gbWVudGlvbmVkLiBIb3dldmVyLCB3aGVuIEkgdXNlIHRob3NlIGluc3RydWN0aW9ucyB0
byBvcGVuIHRoZSBvdXRwdXQgZmlsZSByYXRoZXIgdGhhbiB3aGF0IEkgaGFkIGJlZm9yZSwNCiB0
aGUgY29weXJpZ2h0IHN5bWJvbCBkb2VzIGluZGVlZCBjb21lIGFjcm9zcyBhcyBDMiBBOSBhcyBp
dCB3YXMgaW4gdGhlIG9yaWdpbmFsIHJlY29yZC4gSSBkaWRu4oCZdCB3YW50IHRvIHVzZSB0aGUg
dXRmOCwgYmVjYXVzZSBJ4oCZdmUgdHJpZWQgdGhhdCBiZWZvcmUgYW5kIGVuZGVkIHVwIHdpdGgg
ZG91YmxlLWVuY29kaW5nIChhbmQgYSByZWFsIG1lc3MpLiBCdXQgSeKAmWxsIGNvbnRpbnVlIHRl
c3RpbmcuPG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNwOzwv
bzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPlRoZSByZXN1bHRzIG9mIHRoZSBnb29nbGlu
ZyBJIHJlZmVycmVkIHRvIGNhbiBiZSBmb3VuZCBhdDogPGEgaHJlZj0iaHR0cHM6Ly9ncm91cHMu
Z29vZ2xlLmNvbS9mb3J1bS8jIXRvcGljL3BlcmwucGVybDRsaWIvc3k3aHFpQlExeU0iPg0KaHR0
cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9mb3J1bS8jIXRvcGljL3BlcmwucGVybDRsaWIvc3k3aHFp
QlExeU08L2E+PG86cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj48bzpwPiZuYnNw
OzwvbzpwPjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxvOnA+Jm5ic3A7PC9vOnA+PC9wPg0K
PHAgY2xhc3M9Ik1zb05vcm1hbCI+QW5uZSBMLiBIaWdoc21pdGg8bzpwPjwvbzpwPjwvcD4NCjxw
IGNsYXNzPSJNc29Ob3JtYWwiPkRpcmVjdG9yLCBDb25zb3J0aWEgU3lzdGVtczxvOnA+PC9vOnA+
PC9wPg0KPHAgY2xhc3M9Ik1zb05vcm1hbCI+VEFNVSBMaWJyYXJpZXM8bzpwPjwvbzpwPjwvcD4N
CjxwIGNsYXNzPSJNc29Ob3JtYWwiPjUwMDAgVEFNVTxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9
Ik1zb05vcm1hbCI+Q29sbGVnZSBTdGF0aW9uLCBUWCZuYnNwOyZuYnNwOyA3Nzg0My01MDAwPG86
cD48L286cD48L3A+DQo8cCBjbGFzcz0iTXNvTm9ybWFsIj45NzkgODYyIDQyMzQ8bzpwPjwvbzpw
PjwvcD4NCjxwIGNsYXNzPSJNc29Ob3JtYWwiPjxhIGhyZWY9Im1haWx0bzpoaXNtaXRoQHRhbXUu
ZWR1Ij5oaXNtaXRoQHRhbXUuZWR1PC9hPjxvOnA+PC9vOnA+PC9wPg0KPHAgY2xhc3M9Ik1zb05v
cm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+DQo8L2Rpdj4NCjwvYm9keT4NCjwvaHRtbD4NCg==

--_000_CY1PR02MB1133CD210AD6BBB248BEF18DA0110CY1PR02MB1133namp_--