[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с utf-8
Джангар
Пишу простой русско-калмыцкий переводчик.
Использую CakePhp (новичок)
кодировка БД - utf8_general_ci
кодировка файлов utf8

Так как в этой сфере лингвисты и филологи не проводили исследований, вынужден писать машинный перевод, т.е. простая подстановка слов, без какого-либо анализа (методик нету).

Все работает и работает хорошо, НО возникла неожиданная проблема с БОЛЬШИМИ буквами...
Вот исходник контроллера

<?php
App::uses('AppController', 'Controller');

class TranslatesController extends AppController {
public $helpers = array('Html', 'Form');
var $name = 'Translates';

function index($source = NULL) {

if($this->request->data != NULL ){ $source = $this->request->data['Translate']['source']; }

if (!empty($source)){
$words = explode(" ", $source);
$unique_words = array_unique($words, SORT_STRING );
unset($words);
if (!empty($unique_words)){
foreach($unique_words as $unique_word){
$cleanWord = $this->cleanWord($unique_word);
$search_word = $this->Translate->findByOriginal($cleanWord);
if(!empty($search_word)){
foreach ($search_word as $word){
$kalmyk_word = $word['translate'];
}
$kalmyk_word = $this->checkWordFirstSymbol($cleanWord, $kalmyk_word);
}else{
$kalmyk_word = $cleanWord;
}

if(!empty($cleanWord)){ $source = str_replace($cleanWord, $kalmyk_word, $source); }
}
}

$this->set('Translate', $source);
}

}


function cleanWord($Word){
$arr = array('.',',','!','@','#','$','%','^','&','*','(',')',
'_','=','+','[',']','{','}',':',';','"','\'',
'...','№','?','<','>','1','2','3','4','5','6',
'7','8','9','0');

foreach ($arr as $symbol){
$Word = str_replace($symbol, "", $Word);
}
return $Word;
}

function checkWordFirstSymbol($Word0, $Word1){
if(!empty($Word0)){
$firstSymbol = substr($Word0,0,2);
if(mb_strtoupper($firstSymbol) == $firstSymbol){
$fs = mb_strtoupper(substr($Word1,0,2),"utf-8");
$Word1 = substr_replace($Word1, $fs, 0, 1);
}
return $Word1;
}
}
}

?>


Суть проблемы в функции checkWordFirstSymbol, которая заменяет регистр буквы в переводе, если это необходимо...

В данном виде я получаю текст типа:
алый Абрикос -> чисм улан Ш�ар өрг

Подскажите как избавиться от �???
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.