Модераторы: korob2001, JackYF, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> кодировка, кодировка 
:(
    Опции темы
od0201
Дата 9.1.2013, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



windows 7 x64
ActivePerl-5.16
везде utf-8

задача. преобразовать в большие-русские, даже если пользователь регистром или раскладкой ошибся, но...
Код

use POSIX qw(setlocale LC_ALL LC_CTYPE LC_NUMERIC);
use locale;
my $g_setlocale_all = POSIX::setlocale( &POSIX::LC_ALL, "ru_RU.UTF-8" );
....
$b1= 'привет';
$a2= uc  $a1; # $a1-слово 'привет', переданное скрипту из формы get методом
$b2= uc  $b1;  
print "1.-$g_setlocale_all-<br>" ;
print "2.$a1-$a2<br>"; 
print "3.$b1-$b2<br>"; 
print "4.$a1-$a2-$b1-$b2"; 


выводит:
Код

1.--
2.привет-ЯрШвет
3.привет-ПРИВЕТ
4.привет-ЯрШвет-привет-ПРИВЕТ


Почему происходят такие выводы в строках 1,2,4, при том что 3 отрабатывает нормально?

P.S. При установке Windows указал "региональные стандарты" Украинские, но после замены на Русские изменений не произошло.
PM MAIL   Вверх
arto
Дата 9.1.2013, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1490
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



perldoc perlunicode   perlunifaq    perluniintro  perluniprops  perlunitut
PM MAIL ICQ   Вверх
DurRandir
Дата 9.1.2013, 03:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 335
Регистрация: 27.9.2009

Репутация: 14
Всего: 17



PM   Вверх
od0201
Дата 5.2.2013, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



Спасибо всем кто пытался помочь, но я решил проблему следующим образом
создал в кодировке ANSI и подключил при помощи require файл, примерно такого содержания
Код

sub registr{
    $slovo=shift;
    Encode::from_to($slovo, 'utf-8', 'windows-1251');
    $slovo=~tr/а-яqwertyuiop[]asdfghjkl;'zxcvbnm,.QWERTYUIOPASDFGHJKLZXCVBNMіїєІЇЄ/А-ЯЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЙЦУКЕНГШЩЗФЫВАПРОЛДЖЭСМИТЬЫЪЭЫЪЭ/;
    Encode::from_to($slovo, 'windows-1251','utf-8');
    return $slovo;
}
1;

данный способ также решит проблему в следующих случаях:
- sprinf "%20s",$a 
- length
- работа с XLS при помощи OLE

з.ы. Я уверен что есть более "правильный способ", но я его не нашел
PM MAIL   Вверх
Muan
Дата 7.2.2013, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 7.2.2013
Где: Москва

Репутация: нет
Всего: нет



POSIX и Win32 не совместимы

------------------------------------
физические свойства меди

Это сообщение отредактировал(а) Muan - 5.1.2020, 19:20
PM MAIL WWW   Вверх
Google
  Дата 27.1.2020, 19:33 (ссылка)  





  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0906 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.