Perl   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用Perl在Windows中创建unicode文件名大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下代码
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作为编码.

* – Perl对Windows的支持在某些方面很糟糕.

大佬总结

以上是大佬教程为你收集整理的如何使用Perl在Windows中创建unicode文件名全部内容,希望文章能够帮你解决如何使用Perl在Windows中创建unicode文件名所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。