Перейти к содержимому


- - - - -

Кодировка в PowerShell


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 pahan76

pahan76
  • Консультант

  • Пользователь
  • 990 сообщений
  • Пол:Мужчина
  • Город:Химки, М.О.

Отправлено 21.07.2010 - 17:04

Ситуация такая - есть скрипт PowerShell (v.1.0), вытягивающий названия групп из ActiveDirectory.
Мне нужно вытащить его результаты на вэб-страницу (Apache+PHP).

Проблема в том, что в названиях некоторых групп есть и русские и латинские буквы - типа MSK_Группа1_R
В консоли PowerShell я могу переключить кодировку и эти названия выведутся нормально.
Но когда я запускаю тот же самый скрипт PowerShell из PHP через shell_exec(), я получаю вопросы на месте русских букв и не могу подобрать пару кодировок, которая бы позволила их преобразовать во что-то читаемое ни из PHP, ни из PS.
Кто-то сталкивался с подобным?

#2 Kanana

Kanana
  • Пользователь

  • Пользователь
  • 409 сообщений
  • Пол:Мужчина
  • Город:Свиблово

Отправлено 22.07.2010 - 20:39

Похоже на генерацию неправильной кодировки...БД установлена? Настройки апача по выполнению функций на лету надо посмотреть

#3 pahan76

pahan76
  • Консультант

  • Пользователь
  • 990 сообщений
  • Пол:Мужчина
  • Город:Химки, М.О.

Отправлено 23.07.2010 - 09:13

А при чем тут вообще БД??????? Она мне не нужна.
Текст в AD лежит в Юникоде (только в каком конкретно варианте Юникода, я пока не нашел).
PowerShell работает только в Юникоде (про конкретный вариант аналогично)
Консоль PSа по умолчанию отображает текст в ASCII но ее можно переключить в скрипте на правильное отображение командой
$OutputEncoding = [Console]::OutputEncoding

А вот когда PHP вызывает интерпретатор PS и заставляет его выполнить этот скрипт, эта команда не действует и кодировка теряется где-то между PS и PHP.

З.Ы. Пока нашел решение этого вопроса только для Unix`а  :)

#4 pahan76

pahan76
  • Консультант

  • Пользователь
  • 990 сообщений
  • Пол:Мужчина
  • Город:Химки, М.О.

Отправлено 09.08.2010 - 11:12

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




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей