Front page | perl.perl5.porters |
Postings from February 2000
Convert::UTF
From:
Gisle Aas
Date:
February 26, 2000 17:26
Subject:
Convert::UTF
Message ID:
m3r9dz4eud.fsf@eik.g.aas.no
Instead of my earlier proposed utf8::encode and utf8::decode functions.
I now have a Convert::UTF module that provide functions called:
encode_utf8
decode_utf8
is_valid_utf8
encode_utf16
decode_utf16
It should probably also have {en,de}code_utf32 functions. The *utf8
functions just happen to be very efficient since perl use utf8 as its
current internal representation for wide strings.
Interface issues:
- module/function names
- how should various encoding/decoding failures be handled?
Is croaking acceptable?
- byte order for utf16/utf32 (currently I always encode/decode
to/from big-endian.)
- encode/decoding functions try to modify their argument if called
in void context. Is that a good thing? It allow the utf8
functions to basically just toggle the UTF8 flag with no data
copying.
- perhaps these functions should just be merged into pack/unpack
somehow?
Regards,
Gisle
begin 644 Convert-UTF-0.01.tar.gz
M'XL("+1XN#@"`T-O;G9E<G0M551&+3`N,#$N=&%R`.U:>W/:2!+WO\RGZ.6<
M!&R#Q<.8,[%KO0YDJ;4QQ</KJ\L5)=#(J"(D=B3`OJP_[GV/ZQZ-0`(3YS:)
MKW9+766#9GIZ>G[]4,\,%ZXSY\+/]7N-G);7"H<[WYZ@K!T?'<$.`!Q7RK%/
M11JV:$<5[;A<K)0`"L6"5MJ!HYT7H)GGZP)@Y\[R;/X9ON?Z_Z1TL6Y__)*?
M3K[I'`5-JY3+6^U?JAQ70OL7BY4BVK]4U(YV0$OL_]UIJH\^ZG<<E!^<G*#]
M:XS-/`Z>+ZR17Y/?;[N7KFYP`9DL]@K^V\P2'.KW4U?X7-38GC6AKW`*'UZ'
MK2<G02,.<&<"?JS?MJ\[/63Y;9'ASL@U^&#FFU4`@T<>+&\PUVW+D(\,UFDU
ML%")#,2'Z,!"Y7,C2\7(2'R(CBP5-T9FU0)V;^J=;O.ZA2M(4ZBD:RR$Y>3$
MQD]X$T7QS<%R!`HHX-]@4&^]&PP8.QUSW2A`Z_RJSEAT#.2@+M4\#!2$N2XL
M=^9!W['D<T_HCF>B'22;Y=QY2VG=?[2NV]UFES$@B\7$KB$>`3R+[+MH:5Q4
MI#6S*_MJV"<'G$;0PT[D)U#4Q._JW8M.L]W#A3+6F#DCWW(=#WP71H$.,.3^
M@G,'4)6JDF1(]T+]07<,L!ST%T>W8<J%S51/'IX>X#KV`XGV=<N!T5@7^@A'
M>_#V%(KXFB%Y"\L?L['NP0BG)S:#3["=QL*"VW;.=,6$&P[W/,"OX*%#XS0<
M&4RHYH:6+P5[>=9&A98SC_4YC\Y(TX`KT`ZH.KK0C(,^=)$']<@SUAMSE&[;
M[@)'*S`\Q`:$._,MG!QT#")]KENV/K3Y"2**@P5^6#Z?Q"`'#)X.9$FFA2HK
MD,'7/Y(4I2#H)/%N-N&.+V$0W)\)AR".(<E"/7"Q/NKHZ1.N1"#F31-&NFUS
ML@K,7<N06/-[_P`0EH5EVTH.DV.#F2TG-[7U$<^'RD>=Z1GE2;7<EA5@*Y>N
MI.+!\O.LZ8/A4BM.[TZGKH<31M'%546ARQ[`<.;#Q+H;^V`BUF3QT,=0B.Y+
M,SBN#S(+2'V^"`>FE/H<#K%TM@T)"6I@+,2CU^G7E3=99C#"(IQBVMW0`XM`
MA[Z.9AYRA500`^AGP(5PR9,WO*I0^29NE</<^W]QK.?U#[3[0M]BZ%NHY//.
M198\.0E4W?0N)O/)UWD7DV!\WKN&^.)FWZ'^NT+L3,OF^?;E"]5_4#PNR?KO
MZ`C92E3_E0NEI/Y[$0I+N?E1_BA?J6A!N5>_]_N^97LG)^0.](<U'OM58#"$
M_I&1=1*5,"DX/5LO?62GJGX&C<[UE>0)]A:JU[`\?UEC8>\GN+B^:G?JW:[D
MO?NW-87<WTTLH[K]1J-YJUKQ^?&`4?FQD]!WB/^+L>[<<>\%]W\`E>/E_K]0
M*-/^KUPJ)/'_$E34-"VG%7-%-`&\IS7".;XHW\KE_JCK7MYQSQ@%;(?;7,?<
M0%Z2Q-Y?-OZOSEO-1KW;>]'X+X7Q7SHN%>3Y3^4XB?\7L7^0[EEH=A:I_UCP
MOI8?]Q[SN>?GIW82^W_I^%=6?L'W?T$[7I[_:Q6-SO]+1UHYB?^7H+_]<#CS
MQ.'0<@[I[`URB^#P]PN/#^/G&]M/9ZE>W]7A%.98<.1+&NXSV!3WM+X)Z7^^
MFAO_^N"D#V!7Q^;8`<6NGMW.&3L*^"PGX_<6G4,K)=+F?T2:-!JNGVRNA$!Z
M5S_<':(,;+%,R,1/<I`S"Y_D1F;)KG;XU"^'/3)N(Y3K7*NS@`CG4U,,-Z88
M?M$4PRU3J/[;VUO$)7;:JV</(!TL-=8^C&**D`:(#I/-UU_[_N_^FV[_GLG_
M!:U<.EKF_^/RL:S_REJ2_U^"#O<8[&&VGSX(>81)^\'5/A#[J%N>KMK64.CB
M@<ZB3<$Y>*[I+W3!:_#@SN3AL^!TIB.LX<RGDWHZ9#UT!0F8N(9E/E#;S*%;
MQ.7AL,_%Q*.367G/8OD>M\T\CCAD[&^6,[)G!H=T_;97[[3RXW2DC5Y6\9;;
M;O\G:F%H4-\:L>[-7OQ=@@W@S;,L2);=7N>RW@*;.S7Y3-<ZL.?A"Z$[;]]D
MO/D!]66#SNX-[`E.UYL.7W1O,MBS5]PO9*-#A1IZFT%.RIO415D=&Z]_08%9
M>/T:.>@`F)XHMZ?4K+[@CH'C/=@/-$HMQEB#0P9WXA#T2G82V2P5958?!(S4
MU+^!V1R'RV;?'<SF&>\`7H=<6<6&TD\C0X-&TA`'OP7M_ET5;?_[[_+YC)X;
MC0;I3-VG^(R/C4#MU.$>3&VZ6,/W/-V6!=<5:+94:D_L[Y,N*.,,JK5HB]+C
M,?B0;RXU_9D2'YVNH,D)P_F\F1#NG8ZN-=4M<8"6X`848?B`%2OP>U_H8%K"
M\P,M`F!=VQA,Y_=KEDFE^JCV&/T=;>PNJ"$PWOO.]:_$<X#?T3FDS?:A2/\R
M`G*@Q)%Q4RD:'ZSS$)4M(W3["D,2B'(AZ'T5[;V0E<\2$BEC#29JBSR2H#4.
MJ?,FE(332+CZQTSZ0G?>^*JR"=SSPX?[3Z^T\NTCW3>$-R/J7@'?Z;-Y=F6<
M1Q9\B4I6_HB.D\LM75'I\^:#]J86:]GS]O=K*T%!#%$8#%Q'&2%HNNAW!A[W
M`]`)XI6=%(^Z%L,/6<-$@CM6_GU1<!^$H89?C%AD!P]#U[5AK'L#=>G=.+_L
MUK=%\@_>7/(-#'?AW`G=X#)IT.V=BNW`%C_IQAK<!+5:UNOVY8#D8%8T:U&T
MMB2BS4P1@A3-39AQ2X=%Y`@SE+$6`=0F_V%<#5V,JP7&DBG<"5SJ0CR\"?)Q
M`*U,*/(BE5R'ON5'%&,T_.DL%::C3+^:)4^`MV^E_V+C_JJ57#@H+3/I?#X/
MKX+J4GHB2T724E5;.9P1SR1T9V8Y,RY]C:4BIB,SU-;$;,C)9%2:@DIV>1CU
M._*.M#`<8IR*7B-'R<Q*SNJ2,Z9+./$9)3*#\JI*;/0X-''PIUA.\V364A;!
M`AV\L3NS#71</OH(*WR7;(@Q989-D*F3>M:0#EV8NJ02HR#7R_0BE32E5JL<
M0GZ[U"^=C>?NP+ZTPIQ*>EE2H*#)7$E"<RK=967BPQ)0YL7'F$EDZU:C%(IQ
MH_!-HV16YGO:*'_4?&':>U*O:EPO<ZM>M()G]/I>*_B?$J_Q5.(E.X4!E66I
MH'!9B7DJ.;.KZW?]RSJJ&ST^2*7:YQ>_G+]?;V>,[KU9=/]-&3S(RI3-Y==V
M^^+Z7?UD^:LL4NM]\^JJ/KB!TU-X/[BY;KX+]\E1INZ\]W.S]4NCV>GV9+V%
MKHVIUG3%B`\<5TQTFYK#VD@E<W6M+SM":8_+;U&W6-6$.+8X<86/`F4*]N9R
MOEI,I;4)5K8(J=WO_NRMM3\JC**;\L]@E-H*3NKK4`GF5QUKX4%Z/(/#4[)4
M*;9]Y2DFW_+Q,Y&G%M^I-UO-'JZ>&JE$PUV)@^K@JW4T$R-WFCO#?[*5?I01
MS!%WJBVL*.37\TYKT+INU6LR-7NSZ530K\;D:V;)1UF9T-W$:PE^&#^F*6&$
M34+Q6`>XN&UZ"$YGZ"<?ANOP\&T;4J?>NSF_1.54]?#`O1AP4>NL\SINC'7[
MPD,@`_;K?J_=)XP#>6QS=_4UH;OT(RFJ]I6A')P^GL*Z>K70$+WZ59L2F3J9
ME,CK]#,]?,ER]#6$W36#A+A\W^)TF"ZE1Q_`\DA3">S4&Q>M'ED]E+D]=VR&
M?"1LUE7.KD7$1MG[K5"O?@/0J['?D&['O/H'(:]N1;SZAP%?US<.>'(\F%!"
M"2644$())9100@DEE%!""2644$())9100@DEE%!""264T)^$_@ONC`*<`%``
!````
`
end