Как Perl установить кодировку want Я хочу создать каталог со специальным именем - PullRequest
2 голосов
/ 07 апреля 2011

Если я хочу сделать это с python, код выглядит так:

#!usr/bin/python
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

path = 'H:\\Dolly. - 。.〆bear小熊-葉鏗然-ω·)~☆ぼんじ'
print(path)
os.mkdir(path)

, но я пытаюсь использовать perl, он не работает.

#!/usr/bin/perl
use File::Path;
use utf8;
path = 'H:\\Dolly. - 。.〆bear小熊-葉鏗然-ω·)~☆ぼんじ';
make_path(path );

1 Ответ

3 голосов
/ 07 апреля 2011

К сожалению, Perl очень плохо поддерживает Windows. В этом случае это частично связано с тем, что Perl считает имена файлов непрозрачными строками байтов, а не текстом. Таким образом, встроенные функции не используют вызовы интерфейса (W) ide, поэтому вы ограничены кодировкой "(A) NSI" вашей системы. На большинстве машин это cp1252.

Win32 :: FindFile предоставляет интерфейс для CreateDirectoryW под именем CreateDirectory.

#!/usr/bin/perl
use utf8;
use Win32::FindFile qw( CreateDirectory );
my $dir = 'H:\\Dolly. - 。.〆bear小熊-葉鏗然-ω·)~☆ぼんじ';
CreateDirectory($dir)
   or die $^E;

Не проверено, но я бы удивился, если бы это не сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...