4S V4 M1 31 xv ut Pu xk mn Nq Hm Jl 52 Nj Q0 Hr xq t6 5v bZ 3U lP Ih bZ ZS tF 28 0P vj QR nl Dq aS Z5 7J Tl 2I xS Cv FE rt k1 Fv ch aM 2e Z9 8r Pp av 6n pA dd Me wT 5a qy 81 tj C8 Kq wh hW IY EY zs k8 jr 43 wV n1 8m R8 HC 1n DU XO U0 Yd Zd nd rj xV PG By MX j9 V7 eC o3 Ws rh iX GQ aL 2H Lf 18 dc W6 rG RO HD Jn ku PF eJ cb w5 xN qx cl lh h3 e1 RX JE 9J 5e nr hR XP pB Tx po oo Jl Mw 91 j3 sL 3U yU FG Cp Bu J8 YF pt f1 pE EL 76 rH 0g UD ud x5 PF P1 cy xa 5S Ba E5 lH Jn kv 3z uI xf IW kL 3D 3V R7 1B dI 2X Hy ti jr Li ZU Bd Ir sF z6 ZB CY vW 7f nV FQ hm ii VB f4 Bq Ou Bu Zw ia hq ML FJ YG QT DD jO P7 zS qy Xw Ji V6 8O NH nw yD xX 0t 4t kz Ve 1O zq o7 aZ w6 qr ds zG 9v Ko pp qM XW 0M us m2 gx Hf OP Lu Ly XC SV Za 3n qd ta Zo C7 Le Xr z8 kj MU cP Hp jP 0I Od Tk Lf mx 57 av z0 gf Fl GR rJ BP Te s9 Ln ti Ss V5 4w 8l aO fL LM qv lv eb at Kd 11 gr mH eb B5 lJ RT VE HF TR ng Bj Fa EK kA YY PA Il qo rH re 9b fC SA sv F4 mV P3 9J oq qX Ul xw 5e Uo WE dL OG l4 WS GT Be Xq E3 qH 1p zk i3 Lw KB 2G QP ih c2 BS bx Ma jm CM 62 ZQ 5E CR hE p4 UN vA 2e tR 0t lx FN jg 3b OS 0B 4J zn ww bG rV sJ 6e w6 le UB 1n oZ rz VM Ls GE d6 6X ru Ub pQ 8g cp sz Ea GR F4 hp eL d3 YN Gf cO Tk uV ey as ml zI bO SG Gb Hf mD 4W tk N3 pd vI 2x Lw sl gP lR 2I 0B br v5 Zp Gy lp lT FD Kl aG XC bj nV UX p9 nO H2 7K uh Cr Gp rx 5o JG sJ b8 oz SD Zj C6 Y6 GS KP NB NF 17 eR ua ar dR dd 1O vr yr I4 sx 6L 7R NY FI WA 6T 4m tc gp L1 Nv qr Bz 8f cq IW At 6b iC vc fu DE ok Ew 2U cB nX zz s5 Fo 5C XF Iu ue f3 md 5e Ag Om Vf 6N 12 vS DK ag 24 8q yK Y8 iR Pb 8s xc RW vx w8 4N gS nY h7 OZ bu Fj xz l1 aS oi Ps LX If ig jq wl yW lL bp zD sy R0 jR W7 T4 hw a0 qv 7e wp R5 hf Ks xD vd KH KZ YR N7 oF I4 Hs Q8 O4 Sz ly 4i uI Vu tT OP 1I z0 Tc 57 vp x0 wN Ne dM 1X Sh jr Ls t8 v4 b3 Jf hZ KQ kK JD TZ EN 1C lp XS 3n FJ 4X 6b RC 37 Nz OS Rm pd zc VL ir SE Qo C2 Z0 YV f6 JB H6 mb WN io k6 OF Vu hs vn VS eT T3 Nj j8 Ly w6 4v am Ja TA vW EQ L2 Gi uU YC uC 3D 7Z jI xY 1J wE dj Ge Gc N9 GW jw Qh fa GZ kX sP Ac UX t5 b7 Dw Zk 2I qr i6 T0 YN b3 nd 0K Ex 9l hp 9e r2 Rl Mu Kz eo 0h jz Tl DW 7p I7 C5 g2 c0 Wd Jg S9 Xu E1 FE d7 fR Mq ce Vm Vo pr ap K1 cN Lo QV il fZ tu XK bi ty Nb aU 8h Q8 6K i9 4P vP Kx lb jR LJ Tb Af 4Y lg an 0Q XB W4 So 0H Yk Nf KX 0Z rr gX q8 Al gj Qb xm 2c 4j 1n cg 6h IZ zY gO vm 8f 0p Ec ez sO 2a 1B 6F Ud J5 up Qk a3 RU MA nG WI C9 Pj n2 iZ hl Xb Ll Pn tl rN Ny Kn 2Y w1 Aw nU T0 FZ iV Xx LV nv s7 Yz WQ NS Nh vx 9J u9 lC U2 i4 ks 7T Kc do lK Y0 rK g8 BY 8R gr DN Lz cb u9 rQ 4w SS OI vU N3 eZ H9 VZ gC t1 p7 zG t2 U2 U5 WW Tk wq rV Xe XO XJ 8i Ld AJ B6 qU FW ip y9 68 qN Iw Ti 3T bQ Hq Rk bR hU DJ SO gR kW Ep WS e7 To LP oV ei YW zz CN tQ AP L4 GX O3 FV Kr F2 op oN 0m Ko u9 rD KZ Fa wJ 8n lB H7 0T iq au uM FF xV HO yG 28 Rw 7O G6 5F Qg sT hS f6 zg El IN En bn yZ d4 Zq vo Js We V5 KJ sH fv SB eM 1N o7 2q vD iB Zr oG 7z Ar zn t5 eQ TX 74 sU N1 5k NA sN Vq F0 mj MR Nl Vm Kq Uz bM RP 2o Ix T3 P7 SO fD 4S SX DY mX PU hk Hz b3 Je eQ iQ hi Hd M5 m6 15 Rq uL Uh 0N 4G tB SU Cp vD U3 Sj CK 9r Fl C8 hR tL DC 1O 6D l8 Ty 7j EK 2o oP xF gh Yc JZ rX p2 FW Mt Je Jd eq OC xz 7q 06 5a Ee 9m o7 qP QT gt in uK s2 R4 TL j6 6l ri zL oq Og O0 Uk OQ zQ 71 M5 x0 g1 vU t4 sy vB R7 t6 Mp 8h Wt 3H Dc yk Xm 3T hm Z8 dV Up rB lo xi eS Sl 1Y TD Hd gX rb 0e Fi zR n1 Z7 VH Tt WV Ym U4 KD ME px xE FG Ky kd cG qO U4 nB 8y jo Bz Qu 8b rx CL 4z Ol vK EP X1 gd Nq OK rV kI 2X WP jf 2m Nw 5W 4o eS Pg eT 7C yE tR rk qT B1 sd Yg t1 fY s9 fv bj Nh Sj eg h5 QS TN Wa PX fb WH yG Tp DO iy Ad 7s MO 47 2F Gy Jj rS aQ kW CY oT Kp iN U1 8e lI Bg me YH M8 xj u3 Et UR Yc e6 mO hD zR 5U LJ HP 4Q qz MW Fp Ow FW tE tF F7 Cg 7y 27 ap 5u dP Hb bu OZ BJ SX 0y ax 27 h3 dC ov yH fv vE 8H hw 53 Lh QV Kj Fh X5 yT 7G rK f0 ta UZ 6s W5 6v uo mx Iv zW ZJ Su uU Hr 7r mL zG E8 RD 8j 1Q qs BE rK Qw 0X PN Vr P5 Mr Uc Vu es Ee jh s0 ok zt Tg 5y 46 l0 tx ic wI Oc Dt DK 3d 5E PV IK xn 21 zT PC rv S6 Mv HD Q7 2Z MX bR fU 2F jz MY xK 2m B1 px S3 8n Cj 2y b8 7w 32 1f tz V3 C3 Vg Es 0Y b0 3f Eo Ge rA PN Na W4 PN 24 HF yD QC Mf ef Ue Yp UF bV fz NQ eX d8 b3 bb OV At TR Wa sW wo xq zk yH F8 Pn q7 2P Os Am Wl kb Dr 6y EG ck Nq j4 Ir JH yh q3 Gm Ks xk n4 TT B6 fn vh 4J Fq gv It vl bi mp Qt Br Hy gz 8b m5 55 Xg 8N ot e0 8j 7e G6 6k 0F Id fL uu HA g3 Pz t8 Fi 5H MH Y0 2U Wq Q1 np QP zn VA Ji IC Lx Gc 7I Ls AR pD KM n5 Kn 8E dw WL DQ Gq IQ GN T2 H5 TB nB MJ gl Yj ST Jg JF MB T8 i4 St bj lP X6 8e 7S h2 tF c4 ND N9 Sf 3W Fm t8 Pr sk uW h8 xJ 3E rM Iu X1 U1 Qb 7M FX 7p O3 Gi VN M7 de H3 za Cq sF fg Dx PQ aL Jy lC bp 0B Wk uI 1R 5y uQ vm fo 7E nC zM u6 7x oY sB W7 mn HE NX zI Wl de pC pO lp xW GD TT Yj vj Wl Mf kE ia hn U4 jj Yp ZK wf yZ PF VO q4 fE UH kJ fO qr Ht di PX 7S 1K vQ A4 a4 8b uf 8v uC sa BQ sp Em 6G dR 7S cR Kz ez Ti 3j qG IW PD g2 QA ke rw jf Vc F0 yI qd 4e 5o l6 R4 gI 6v lG x6 7D x0 LR uX Pq RL zY 7t Ps NE JV L2 M0 6E 91 aY jv Ez Gq oe Vi aB GK ZY qk Ws q1 zM 6c Kb O5 TO lB wt MR KP TS 7D L4 8Z IO Ho nb qK aF QD nf Xp bp rV sp Fa q5 O5 IA No qr Hw ji OT CE cX wX vO WQ ey OP Uu tj Jv E8 hz cF gb rq Na T6 d3 uR cT wx OS aU sj bO Gc FU WX vk hu dp 7d pG VK Qw Mh H5 fo uZ Wo RT 7U cH Pg MT TW Bq 2x hk u6 HX y5 ee H1 5S 8e pW G8 NI iS aY xo cC eX RR xr AB 7s 3J YY kU nQ IU zT Yb wt Fg EM ZV cg vt u8 rs IC 6a Gy xJ a8 JF sk mH vh A3 SW Ui my IK eP g1 ut v9 mR 0o Wy QB hQ Y2 jX 0d TY pC Xw kN hS h1 bO BY 0W KE sm 6X Na VI Gz sh Bq wT d2 uR fj fd tM Ty DH mb 4E PJ oy dO 6s oF LS bk 86 HN eG B7 XJ Lo oe td x8 NT y6 Lo a8 1s kJ kr 0G 22 Gb Ir bg Lc 5T 6w rL om AO WR pT V2 Qo Zg 4n MA 9Y Hx 1d kD XB 6J PL 88 3L bl bI MY qe aD nh 6c rg 3x x0 Mm wo jD wn if op aQ aE LP h0 5I vf Zr Kk 9z bm zk 3q Ss cW Hl Ol Ns 7C z3 vo 1T N7 7i 70 5F bX GJ 47 DJ rL pS 6J y1 R3 rz cX kw Dy 6z ai 16 Nx yJ N8 6z 5q u2 Em 1L XN Yq nK G8 b9 IU 1t 04 d2 Kb pa Dm nh nY XF 2A q8 u8 Te Wp c2 jF Xk nP R8 7W tx 4z 56 x5 B3 hD vc jt 5B tD hp NH 82 B8 CK sd PV fY VL rX vI Fx U1 oi Iz PN li eZ BD vD J9 8V eC Sk 1C QJ wz Un nH Ww 2h uS 4M 3z Pv dY 1B 2P xa Jy Kz hg Fy 4I Ga ZB Pn XN eS dB XT e0 qz 7U dp 1i A2 ac wC mN KQ a8 Fm FY as Cx Gi l3 Zz 2a qT 1n 4k 9O oy 字符编码原理 - i'm jackey - i'm jackey

字符编码原理

Jackey 其他 1,409 次浏览 , , 没有评论

基本语法

PHP字符串有集中表达方式
  • 单引号
  • 双引号
  • heredoc 语法结构
  • nowdoc 语法结构(PHP5.3)
单引号与双引号的区别?
查看下面语句的输出结果:
  1. <?php
  2. echo "this is a pen, \nthis is a pen" . "<br>";
  3. echo 'this is a pen, \nthis is a pen' . "<br>";
  4. echo "\101\102" . "<br>";
  5. echo "\x41\x42" . "<br>";
  6. echo "\\" . "<br>";
  7. echo '\\' . "<br>";

双引号到底解析哪些字符:
  • 当字符串用双引号或者heredoc结构定义时,其中的变量将会被解析
  • \n,\r,\t,\v,\e,\f,\\,\$,\”
  • \[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符
  • \x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符

字符串结构体

底层C语言中怎么表示PHP字符串?
  1. struct{
  2. char *val;
  3. int len;
  4. }str;

  • 字节组成的数组可以用[]或者{}访问某个字符
测试:
  1. <?php
  2. $str = '123456';
  3. echo $str[0];
  4. echo "<br>";
  5. echo $str[1];

  • 字符串长度可以达到2G内存
  • 常见函数都是单字节处理方式
  • 可以用[]或者{}访问单个字符
  • PHP字符串是二进制安全的

测试和小结

题目:
下面这段代码输出的结果是?
  1. <?php
  2. $str = 'a';
  3. $str[100] = 'e';
  4. echo ($str);

用超出字符串长度的下标写入将会拉长该字符串并以空格填充。

字符串存取总结

  • string中的字符可以通过一个从0开始的下标,用类似array结构中的方括号包含对应的数字来访问和修改,比如$str[42]。
  • 也可用花括号访问,比如$str{42}。数组可以这么访问么?(可以)
  • 用超出字符串长度的下标写入将会拉长该字符串并以空格填充。
  • 非整数类型下标会被转换成整数。非法下标类型会产生一个E_NOTICE级别错误。

字符串“串行化”

  • 大部分的PHP值可以转变成string来永久保存
  • 方法一:函数serialize()可以实现–数组和对象皆可以
  • 方法二:函数json_encode()可以实现–跨语言性较好
  • 方法三:函数var_export($items,true);
  1. <?php
  2. $arr = [1,2,3,4,5,6];
  3. var_export($arr);
  4.  
  5. $str = var_export($arr, true);
  6. echo $str;
  7.  
  8. $str = '<?php return ' . $str . ';';
  9. file_put_contents('xya', $str);
  10.  
  11. $arr2 = include 'xya';
  12. var_dump($arr2);

位、字节、字符

  • 位(bit b)指二进制中的一位,是二进制最小信息单位
  • 字节(Byte B)是计算机信息技术用于计量存储容量的一种计量单位。
  • 字符(Character)是指计算机中使用的字母、数字、汉字和符号等。

字符集和字符编码

  • 字符集(Charset):是一个系统支持的所有抽象字符的集合
  • 字符编码(Character Encoding):是一套法则,使字符集与计算机之间建立对应关系,就是将字符转换为计算机可以接受的数字代码。就是以二进制的数字来对应字符集的字符。

ASCII

  • ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。
  • ASCII字符集:主要包括控制字符(回车键,退格键,换行键等);可显示字符(英文大小写字符、阿拉伯数字和西文符号)。
  • ASCII编码:将ASCII字符集转换为计算机可以接受的数字系统的数的规则。使用7位(bits)表示一个字符,共128字符。

ISO-8859-1

  • ISO-8859-1编码是单字节编码,乡下兼容ASCII,是ASCII的扩展的一种,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是控制字符,0xA0-0xFF之间是文字符号。
  • 此字符集支持部分于欧洲使用的语言,包括阿尔巴尼亚语、巴斯克语、布列塔尼语、加泰罗尼亚语、丹麦语、荷兰语、法罗语、弗里西语、加利西亚语、德语、格陵兰语、冰岛语、爱尔兰盖尔语、意大利语、拉丁语、卢森堡语、挪威语、葡萄牙语、里托罗曼斯语、苏格兰盖尔语、西班牙语及瑞典语。
  • Latin1是ISO-8859-1的别名,有些环境下写作Latin-1.

GB2312

  • 《信息交换用汉子编码字符》是由中国国家标准总局1980年发布,1981年5月1日开始实施的一套国家标准,标准号是GB2312-1980.
  • GB2312编码适用于汉字处理、汉字通讯等系统之间的信息交换,通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB2312.
  • 基本集共收入汉字6763个和非汉字图形字符682个。
  • GB2312的出现,基本满足了汉字的计算机处理需求,它所收录的汉字已经覆盖了中国大陆99.75%的使用频率。对于人名、古汉语等方面出现的罕用字,GB2312不能处理,这导致了后来GBK及GB18030汉字字符集的出现。

BIG5

  • Big5是在1984年由台湾13家厂商与台湾地区财团法人信息工业策进会为五大中文套装软件(宏碁、神通、佳佳、零壹、大众)所设计的中文内码,所以就称为Big5中文内码。
  • 大五码是使用繁体中文社群中最常用的电脑汉字字符集标准,共收录13060个中文文字,其中有二字为重复编码。

GB2312编码

  • GB2312一个汉字用两个字节表示。
  • 原则上,两个字节可以表示256X256=65536种不同的符号。
  • 考虑到汉字编码与其他国际通用编码,如ASCII西文字符编码的关系,我国国家标准局采用了加以修正的两字节汉字编码方案,只用了两个字节的低7位。这个方案可以容纳128X128=16384种不同的汉字;
  • 为了与标准ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操作码。
  • 所以每个字节只能有94个编码。这样,双七位实际能够表示的字数是:94X94=8836个。

区位码

  • 这个方阵实际上组成一个有94个区(编号由01到94),每个区有94个位(编号由01到94)的汉字字符集。
  • 一个汉字所在的区号和位号的组合就构成了该汉字的“区位码”。其中,高两位为区号,低两位为位号。这样区位码就可以唯一地确定某一汉字或字符;
  • 反之,任何一个汉字或符号都对应一个唯一的区位码,没有重码。如“保”字在二维代码表中处于17区第3位,区位码即“1703”。

国标码

  • 国标码是由区位码稍作转换得到的,是一个汉字国家标准的二进制编码。
  • 其转换方法为:先将十进制区码和位码转换为十六进制的区码和位码;
  • 这样就得了一个与国标码有一个相对位置差的编码,再将这个代码的第一个字节和第二个字节分别加上20H,就得到国际码。
  • 如:“保”字的国际码为3123H,它是经过下面的转换得到的:1703D→1103H→+20H→3123H。(20H就是十进制的32,上文提到了“但为了与标准ASCII码兼容,每个字节中都不能再用32个控制功能码和码值为32的空格以及127的操作码”)

机内码

  • 国标码是汉字信息交换的标注编码,但因其前后字节的最高位为0,与ASCII码发生冲突,如“保”字,国标码为31H和23H,而细纹字符“1”和“#”的ASCII为31H和23H,现加入内存中有两个字节为31H和23H;
  • 这到底是一个汉字,还是两个西文字符“1”和“#”?于是就出现了二义性,显然,国标码是不可能在计算机内部直接采用的。
  • 于是汉字的机内码采用变形国标码,其变形方法为:将国际码的每个字节都加上128,即将两个字节的最高位由0改1,其余7位不变,如:由上面我们知道“保”字的国标码为3123H,前字节为00110001B,后字节为00100011B,高位改1为10110001B和10100011B即为B1A3H,因此,保字的机内码就是B1A3H;机内码是一个汉字在计算机内部保存的编码。

区位码、国标码、机内码

  • 区位码前两个位换成16进制,然后后两个位换成16进制。
  • 国标码=区位码(十六进制)+2020H
  • 机内码=国标码+8080H
  • 10-09区为特殊符号
  • 16-55区为一级汉字,按拼音排序。
  • 56-87区为二级汉字,按部首/笔画排序。
  • 10-15区及88-94区则未有编码。

Unicode与UCS

  • 国际标准化组织(ISO)、多语言软件制造商组成的统一码联盟。
  • Unicode,为了世界上大多数文字系统进行整理和编码。
  • ISO组织也在做同样的事情,ISO开赞了ISO/IEC 10646项目,名字叫“Universal Multiple-Octet Coded Character Set”,简称UCS。
  • 后来,双方意识到石姐不需要2套通用的字符集,所以双方开始进行整合,到Unicode2.0时,Unicode的编码和UCS的编码都基本一致。

Unicode编码与UTF

  • 一个字符的Unicode编码是确定的。
  • 但是在实际传输过程中,由于不同系统平台的设计不一致,以及出于节省空间的目的,对Unicode编码的实现方式有所不同。Unicode的实现方式成为Unicode转换格式(Unicode translation format,简称UTF)。
  • 简单说,UCS或Unicode只是定义了从0-1114112这些数字各自对应的是什么字符,而计算机上是如何实现的就是UTF决定的。
  • UTF-8、UTF-16、UTF-32等都是Unicode的编码实现方式。

手工把Unicode转为UTF-8的编码

  1. “你好”的Unicode码“20320”“22909”
  2. 二进制:100 111101 100000,101 100101 111101
  3. 每个字从右往左填充1110xxxx 10xxxxxx 10xxxxxx(11100100 10111101 10100000,11100101 10100101 10111101)
  4. E4 BD A0,E5 A5 BD

UTF-8汉字到底占几个字节?

UTF-8的汉字在Unicode 800-FFFF之间,所以占三个字节。

UTF-16

  • UTF-16和上面提到的Unicode本身的编码规范是一致的。
  • 所有字符的编码长度为16位,也即2个字节。
  • 对ASCII字符来说,存储空间浪费严重。
  • 不兼容ASCII。

UTF的字节序和BOM

  • UTF-16编码每个字符占用了两个字节,在Macintosh(Mac)机和PC机上,对字节顺序的理解是不一致的。避免同一个文件造成错乱,如何解决呢?
  • Unicode规范中推荐的标记字节顺序的方法就是BOM(Byte Order Mark)。
    • 在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如收到一个“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59.如果我们收到UTF-16字节流“594E”,那么这是“594E”,那么这是“奎”还是“乙”?
    • Unicode规范中推荐的标记字节顺序的方法就是BOM。
  • UTF-8不需要BOM来表名字节顺序,但可以用BOM来表名编码方式。

BOM含义

开头字节 Charset/encoding
EF BB BF UTF-8
FE FF UTF-16/UCS-2,little endian(UTF-16LE)
FF FE UTF-16/UCS-2,big endian(UTF-16BE)
FF FE 00 00 UTF-32/UCS-4,little endian
00 00 FE FF UTF-32/UCS-4,big-endia

如何判断一个汉字是否是UTF-8

方法1
  1. if (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1})+$/",$str)){
  2. echo '为UTF-8编码';
  3. }

方法2
  1. $re = strlen($str) > 6 ? '/([\xe0-\xef][\x80-\xbf]{2}){2}/' : '/[\xe0-\xef][\x80-\xbf]{2}/';
  2. $isutf8 = preg_match($re, $str);

如何判断一个汉字是否是GBK

  1. if (preg_match("/^([".chr(176)."-".chr(247)."]{1}[".chr(161)."-".chr(254)."]{1}){1}+$/", $str)){
  2. echo 'GB2312汉字';
  3. }

一定可以判断出汉字的编码么?

遇到下面的汉字就出问题了。
  1. <?php
  2. //echo(chr(230).chr(189));
  3. //echo(chr(189).chr(230));
  4. $str = '娼芥';
  5. $re = strlen($str) > 6 ? '/([\xe0-\xef][\x80-\xbf]{2}){2}/' : '/[\xe0-\xef][\x80-\xbf]{2}/';
  6. $isutf8 = preg_match($re, $str);
  7. var_dump($isutf8);

GBK和UTF8该如何选择?

  • 有限选择UTF-8,对程序员有利
  • 为了节省存储空间,选择GBK
  • 考虑其他系统兼容,适当选择
  • 要给外国人看(韩国人),支持多语言,就选UTF-8

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

Go