Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
[Perl] ucfirst в кириллице |

04.05.2010, 07:35
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
[Perl] ucfirst в кириллице
Как можно использовать ucfirst с русским текстом?
|
|
|

04.05.2010, 07:43
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
use utf8;
|
|
|

04.05.2010, 08:40
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
Если текст брать из файла, то не получается.
Например, если создать текстовый файл с текстом: тестовое слово (и сохранить по умолчанию в кодировке ANSI), то в итоге получается такой текст: тҐ±Іовое слово. Если же созданный текстовый файл сохранить в UTF8, то никаких изменений не происходит вообще.
Код такой:
Код:
use open ":utf8";
use utf8;
open (FILE, '<slovo.txt');
@slovo = <FILE>;
close FILE;
$text = ucfirst"@slovo";
print $text;
open f, ">ucfirsted.txt";
print f "$text\n";
close f;
<STDIN>;
|
|
|

04.05.2010, 09:20
|
|
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме: 3660186
Репутация:
905
|
|
Вы для начала с кодировкой определитесь. У вас прагмы для utf8, а открываете файл в цп1251
Исходный текст
Код:
тестовое слово
текст брать из файла
не получается
файл с текстом
UTF-8
Код:
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use open qw /:utf8 :std/;
$\ = "\n";
open my $F, '<', '82_utf8.txt' or die "open error: $!";
chomp (my @lines = <$F>);
close $F;
@lines = map {ucfirst $_} @lines;
print join ' : ', @lines;
Вывод
Код:
Тестовое слово : Текст брать из файла : Не получается : Файл с текстом
ЗЫ. Если у вас все же кодировка CP1251, то ее и стоит указать либо в прагме open, либо при открытии файла
Код:
use open ':encoding(cp1251)';
open my $FILE, '<:encoding(cp1251)', 'file.txt';
|
|
|

04.05.2010, 09:41
|
|
Познающий
Регистрация: 23.02.2009
Сообщений: 35
Провел на форуме: 267868
Репутация:
0
|
|
Сообщение от krypt3r
Код:
use open ':encoding(cp1251)';
Спасибо)
Так работает
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|