¼ÓÈëÊÕ²Ø | ÉèΪÊ×Ò³ | »áÔ±ÖÐÐÄ | ÎÒҪͶ¸å Àî´óͬ £¨https://www.lidatong.com.cn/£©- ¿Æ¼¼¡¢½¨Õ¾¡¢¾­Ñé¡¢ÔÆ¼ÆËã¡¢5G¡¢´óÊý¾Ý,Õ¾³¤Íø!
µ±Ç°Î»Ö㺠Ê×Ò³ > ´óÊý¾Ý > ÕýÎÄ

ÈçºÎʹÓÃPerlÔÚWindowsÖд´½¨unicodeÎļþÃû

·¢²¼Ê±¼ä£º2020-12-15 21:15:47 ËùÊôÀ¸Ä¿£º´óÊý¾Ý À´Ô´£ºÍøÂçÕûÀí
µ¼¶Á£ºÎÒÓÐÒÔÏ´úÂë use utf8;open($file,':encoding(UTF-8)',"¤µ¤Ã¤Á¤ã¤ó.txt") or die $!;print $file "¤µ¤Ã¤Á¤ã¤ó"; µ«ÊÇÎҵõ½µÄÎļþÃûÊÇ???,?,?.,.txt ÎÒÏëÖªµÀÊÇ·ñÓÐÒ»ÖÖ·½·¨¿ÉÒÔÈÃÎҵŤ×÷ÕýÈçÎÒËùÆÚÍûµÄÄÇÑù(Òâ˼ÊÇÎÒÓÐÒ»¸öunicodeÎļþÃû),Õâ²»ÐèҪʹÓÃWin
ÎÒÓÐÒÔÏ´úÂë
use utf8;
open($file,'>:encoding(UTF-8)',"¤µ¤Ã¤Á¤ã¤ó.txt") or die $!;
print $file "¤µ¤Ã¤Á¤ã¤ó";

µ«ÊÇÎҵõ½µÄÎļþÃûÊÇ???,?,?.,.txt

ÎÒÏëÖªµÀÊÇ·ñÓÐÒ»ÖÖ·½·¨¿ÉÒÔÈÃÎҵŤ×÷ÕýÈçÎÒËùÆÚÍûµÄÄÇÑù(Òâ˼ÊÇÎÒÓÐÒ»¸öunicodeÎļþÃû),Õâ²»ÐèҪʹÓÃWin32 :: API,Win32API :: *»òÒÆ¶¯µ½ÁíÒ»¸öƽ̨²¢Ê¹ÓÃSamba¹²ÏíÀ´ÐÞ¸ÄÎļþ.

Ä¿µÄÊÇÈ·±£ÎÒÃÇûÓÐÈκÎÐèÒª¼ÓÔØµÄWin32ÌØ¶¨Ä£¿é(ÉõÖÁÊÇÓÐÌõ¼þµÄ).

½â¾ö·½·¨

Perl½«ÎļþÃûÊÓΪ²»Í¸Ã÷µÄ×Ö½Ú×Ö·û´®.ËüÃÇÐèÒª¸ù¾Ý¡°ÓïÑÔ»·¾³¡±µÄ±àÂë(ANSI´úÂëÒ³)½øÐбàÂë.

ÔÚWindowsÖÐ,Õâͨ³£ÊÇcp1252.ËüÓÉGetACPϵͳµ÷Ó÷µ»Ø. (ǰ׺¡°cp¡±).µ«ÊÇ,cp1252²»Ö§³ÖÈÕÎÄ×Ö·û.

Windows»¹Ìṩ¡°Unicode¡±Óֳơ°¿í¡±½Ó¿Ú,µ«Perl²»ÌṩʹÓÃÄÚÖÃ*µÄ·ÃÎÊȨÏÞ.µ«ÊÇ,Äú¿ÉÒÔʹÓÃWin32API :: FileµÄCreateFileW. IIRC,Äú»¹ÐèÒª×Ô¼º±àÂëÎļþÃû.Èç¹ûÊÇÕâÑù,Äú½«Ê¹ÓÃUTF-16le×÷Ϊ±àÂë.

* ¨C Perl¶ÔWindowsµÄÖ§³ÖÔÚijЩ·½ÃæºÜÔã¸â.

£¨±à¼­£ºÀî´óͬ£©

¡¾ÉùÃ÷¡¿±¾Õ¾ÄÚÈݾùÀ´×ÔÍøÂ磬ÆäÏà¹ØÑÔÂÛ½ö´ú±í×÷Õ߸öÈ˹۵㣬²»´ú±í±¾Õ¾Á¢³¡¡£ÈôÎÞÒâÇÖ·¸µ½ÄúµÄȨÀû£¬Ç뼰ʱÓëÁªÏµÕ¾³¤É¾³ýÏà¹ØÄÚÈÝ!

    ÍÆ¼öÎÄÕÂ
      ÈȵãÔĶÁ