Показать сообщение отдельно
Старый 19.09.2013, 14:16   #12
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: PHP что с кодировкой ?

Когда пишу под винду какие-то консольные утилиты для себя, то пути тоже всегда через iconv конвертирую. А на линуксах не приходилось юзать русские символы. Ещё для вывода в консоль использую следующий велосипед (не нашёл способа перевести на юникод текущее консольное окно в винде автоматически):
<?php
// *********************************************************
class Console{
  
// *******************************************************
  
private $charset;
  
// *******************************************************
  
private function __construct(){ }
  
// *******************************************************
  
private function __clone(){ }
  
// *******************************************************
  
public static function getInstance(){
    static 
$instance=null;
    if(
$instance==null){
      
$instance=new self();
      
$instance->charset(stripos(PHP_OS,'win')===0?'cp866':'utf-8');
    }
    return 
$instance;
  }
  
// *******************************************************
  
public function charset($charset=null){
    if(
$charset==null) return $this->charset;
    
$this->charset=strtolower($charset);
  }
  
// *******************************************************
  
public function read(){
    return 
iconv($this->charset,'utf-8//IGNORE',fgets(STDIN));
  }
  
// *******************************************************
  
public function write($string){
    
fputs(STDOUT,iconv('utf-8',$this->charset.'//IGNORE',$string));
  }
  
// *******************************************************
}
// *********************************************************
?>
Пример использования:
<?php

$console
=Console::getInstance();
$console->write("Выводим эту строку в консоль\n");
$str=$console->read(); // ждём ввод строки пользователем

?>
Расчёт на то, что сам скрипт после этого пишется полностью в UTF-8. На линуксе не проверял, но один чел сказал, что решение работает.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Черный крыс (20.09.2013)