|
|
|
| Sdrawstwuite dammi i gospoda pomogite poschalsto!
Ja delaju praktiku na predprijatii i peredomnoi postawili sada4u w PHP5 - sdalat tak 4to bi PHP5 rasposnowal Unicode. Nam prihoditsja rabott s arabskim, kitaiskimi i drugimi schriftami. Esli ja sochranjaju text w arabskomm schrifte u potom widaju na ekrane ja wischu tolko ?????. Ja ponimaju 4to PHP5 ne podeschiwaet Unicode. Kak sdelat 4to bi ja mog wsjetaki sochranjat i w widawat na ekran tot text, kotorii ja sadaju.
S blagodarnostju Max | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 10:52)
| | В каком смысле "поддерживать"? Текст в Unicode - какой-то набор байт и только. | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 11:07)
| | W Unicode est wse snaki kotorie est w etom mire.
Arabskie bukwi whodjat taksche w Unicode i sanimaju 16 bit a PHP poderschiwaet tolko 8 bit. Poetomu widawaja sohranenii string ja wischu na ekrane tolko ???? | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 11:11)
| | > PHP poderschiwaet tolko 8 bit.
Что Вы имеете ввиду? Для операций с mb-кодировками есть функции Multibyte String, Iconv.
> Poetomu widawaja sohranenii string ja wischu na ekrane tolko ????
Может Вы не отправили соответствующий заголовок? В какой конкретно кодировке текст - UTF-8, UCS-2, UCS-4? | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 11:39)
| | функции Multibyte String, Iconv - ja probowal ich ispolsowat, no po4emuta ne dobilsja schelaemogo resultata
$var="قاعدة المثقاب"
$str = mb_convert_encoding($var , "UTF-8", "UCS-2");
echo $var => resultat ?????????
Может Вы не отправили соответствующий заголовок? В какой конкретно кодировке текст - UTF-8, UCS-2, UCS-4?
4to wi podrasumewaete pod etim sagolowkom nastroiki w php.ini ?
Kak ja ponimaju mne nado arabskii schrift (UCS-2) perewesti w UTF-8 4to bi ja dobilsja schalaemogo resultata?
Ja dumaju wsja moja problema w nastroikach php.ini | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 11:48)
| | Вы не ответили на вопрос - в какой кодировке у Вас текст - UTF-8, UCS-2, UCS-4?
Под заголовком я подразумеваю HTTP-заголовок:
<?php
header("Content-type: text/html; charset=utf-8");
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 11:55)
| | <?php
header("Content-type: text/html; charset=utf-8");
?>
etot sagolowok ja negde ne wpisiwal, tak kak negde etogo ne wstre4al ja polsujus etim saitom http://linux-unix.ru/
W PHP ja escho 4ainik:) Mne prihoditsja delat praktiku ne sowsem po moemu profilju, poetomu budu wam o4en blagodaren esli wi mne smogli bi pomo4.
4to kosaetsja kodirowki ja ispolsuju ISO-5589-1
is phpinfo(): :
HTTP_ACCEPT_CHARSET ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 12:01)
| | Я не знаю как Вам можно помочь, если Вы используете ISO-5589-1 (latin1) и не понимаете, почему некоторые символы из Unicode не отображаются.
Попробуйте написать что-то по-китайски русскими буквами. Выйдет? | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 13:15)
| | Russkie bukwi widajutsja kak ???? . ISO-8859-1 Latin-1 kak ja pro4ital prednasnazin dlja angliskich bukw, arabskie bukwi nahodjatsja w ISO-8859-6. Ja nesnaju 4to mne escho delat, ja usche 3 den s etoi problemai barjus. Kak mne sdelat esli ja sadaju waruable s arabskimi bukwami, 4to bi na ekrane widilis taksche arabskie bukwi???
esli ja sohranjaju w wariable
$str="مي";
to ja polu4aju schelaemii resulatat, t.e ja wischu arabskie bukwi. | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 10:52)
| | Предложение к создателям сайта-может замутить русскую клавиатуру? | |
|
|
|
|
|
|
|
для: mihdan
(13.08.2008 в 12:05)
| | U menja k soschaleniju net rzsskoi klawiaturi | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 12:42)
| | http://www.yandex.ru/index_engl_qwerty.html - можете тут написать по русски, используя эту клавиатуру, а потом скопировать сюда ))) | |
|
|
|
|
|
|
|
для: mihdan
(13.08.2008 в 13:45)
| | Тогда лучше http://translit.ru/ | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 15:11)
| | ну пишу на русском. Надеюс будет понятнее. BinLaden - вы понимаете вчём моя проблемма? | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 16:01)
| | Нет. | |
|
|
|
|
 16 Кб |
|
|
для: BinLaden
(13.08.2008 в 17:29)
| | Ну тогда попробую ещё раз. У меня ест фаил xsl. Я из него считываю информацию при помощи функции fopen . Потом выдаю ето на монитор получаю в ответ толко ??????
Я прикрепил мои код здес. может так будет понятнеи. | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 17:49)
| | А можете прикрепить сам XSL-файл? | |
|
|
|
|
 16 Кб |
|
|
для: BinLaden
(13.08.2008 в 17:54)
| | Ну и как мне из етих долбаних 0 и 1 сделат UTF-8??
Да конечно фаил здес xls | |
|
|
|
|
 362 байт |
|
|
для: BinLaden
(13.08.2008 в 17:54)
| | a tut php | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 18:00)
| | XLS и XSL -- разные форматы.
XLS - это бинарный файл. И понятно, что Вы не можете просто так его прочитать, открыв как текстовый.
Вам может пригодиться пакет http://pear.php.net/package/Spreadsheet_Excel_Writer | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 18:40)
| | Ok ja posmotrju 4to etot paket moschet. Nadejus pomoschet, ina4e pridjetsja Was eschje pomu4it.
Wowsjakom slu4ie ogromnoe spasiba.
Da u was est ICQ, esli da posclite na moje milo.
Saranie spasibo | |
|
|
|
|
|
|
|
для: Sirius1981
(13.08.2008 в 19:14)
| | Не придётся меня мучать :) Я сам этим пакетом один раз давно пользовался. Вспоминать или заново изучать что там и как у меня нет желания. | |
|
|
|
|
 1.1 Кб |
|
|
для: BinLaden
(13.08.2008 в 19:50)
| | продолжаю мою не лёxkую тему:)
Так вот я столкнулся с новои проблемой. Я сохраняю в Notepad фаил в Unicode. Откриваю его в PHP и выдаю на экран первая строка видна без проблем - т.е. выходнят арабские буквы, вторая строка выходит с ошибками - перед буквами появляются какие то новие символы, которым там и в помини недолжно бытъ. как мне избавится от этои фигни, и как мне всё сохранит это как Hex -верты или Oktal????
Зарание благодарю са помощ.
PS: Я преклипяю Faili для простоты понятия проблеми | |
|
|
|
|
|
|
|
для: Sirius1981
(15.08.2008 в 11:13)
| | Зачем Вам в коде 2 вложенных цикла? Один из них явно лишний. Догадайтесь какой.
А вообще, похоже Вам мешает Byte Order Mark, который вставляет Notepad. Попробуйте после открытия файла (не в цикле) вставить этот кусок кода:
<?php
$pattern = "/^
\\xEF\\xBB\\xBF | # UTF-8
\\xFE\\xFF | # UTF-16BE
\\xFF\\xFE | # UTF-16LE
\\x00\\x00\\xFE\\xFF | # UTF-32BE
\\xFF\\xFE\\x00\\x00 # UTF-32LE
/x";
fseek($fp, preg_match($pattern, fread($fp, 4), $match) ? strlen($match[0]) : 0);
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(15.08.2008 в 14:30)
| | Ну два цыкла мне надо - такие стандарты в фирме. 1 цикл - прочитан ли фаил до конца, а второи и так понятно. Я согласен что первы избыточный. насчё всего осталного сейчас буду пробоватъ. Спасибо | |
|
|
|
|
|
|
|
для: Sirius1981
(15.08.2008 в 16:06)
| | Что-что? Какие еще у Вас стандарты в фирме? :)))) | |
|
|
|
|
|
|
|
для: BinLaden
(15.08.2008 в 16:32)
| | Nu blin tak sastowlajut pisat. Da i w iniwere tosche w perwom semestre dokapiwalis, esli takiju prowerku ja nedelal. Nu blin ja na4inajuschii programmist(wernee eto sowsem ne moi profil:( )
Skaschite lutsche 4to obosna4aet
$pattern = "/^
\\xEF\\xBB\\xBF | # UTF-8
\\xFE\\xFF | # UTF-16BE
\\xFF\\xFE | # UTF-16LE
\\x00\\x00\\xFE\\xFF | # UTF-32BE
\\xFF\\xFE\\x00\\x00 # UTF-32LE
/x";
4to ja w etoi variale sohranjaju....
Ja ponimaju 4to bukwi UTF-8 nazalnie byte xEF/xBB/xBF - nu sa4em eto sohranjat w Variable i kak eto rabotaet to potom
Я предстовляю как я вас задолбал вопросами.
Я Вам очень благодарен за помощь | |
|
|
|
|
|
|
|
для: Sirius1981
(15.08.2008 в 16:55)
| | Кем-то было принято, что для отличия текстов в UTF-8, UTF-16 и т.д. в самом начале бы располагась метка - Byte Order Mark. Notepad в данном случае хуже тем, что он не спрашивает разрешения на добавление этой метки. И добавляет. Обычно, метка эта - 2-4 байт.
Данное регулярное выражение позволяет определить наличие одной из меток. Для UTF-8 это три байта подряд: 0xEF 0xBB 0xBF.
Короче, чтобы не мучаться, раз Вам это совсем не нужно, то действительно просто установите нормальный редактор и отключите добавление BOM, сигнатуры Unicode или как там это еще может называться... | |
|
|
|
|
|
|
|
для: BinLaden
(15.08.2008 в 17:06)
| | Da blin s menja butilka:) Nu ili 4to tam eschje polagaetsja..:) | |
|
|
|
|
|
|
|
для: Sirius1981
(15.08.2008 в 16:06)
| | Забавные стандарты у вас ))) | |
|
|
|
|
|
|
|
для: BinLaden
(13.08.2008 в 19:50)
| | Sdrawstwuite. Wot nowii durazkii wopros. Ja sohranil w UNF-8 sakodierowanii string w Hex-formate. Wot problema, kak ego teper pekodirowat w string obratno? | |
|
|
|
|
|
|
|
для: Sirius1981
(18.08.2008 в 17:53)
| |
<?php
echo pack('H*', 'ff');
?>
|
| |
|
|
|
|
|
|
|
для: BinLaden
(18.08.2008 в 18:05)
| | Ну это не совсем что я ищу вот мои код:
function string2hex($str){
if (trim($str)!=""){
$hex="";
$length=strlen($str);
for ($i=0; $i<$length; $i++){
if ($i>0) $bound="-"; else $bound="";
$hex.=$bound.str_pad(dechex(ord($str[$i])), 2, 0, STR_PAD_LEFT);
}
return $hex;
}
}
$str = string Bukwi
Мне надо тепер этот hex обратно в string переконвертироват | |
|
|
|
|
|
|
|
для: Sirius1981
(18.08.2008 в 18:33)
| | Этот Ваш сюрр на 10 строк записывается в одну:
function string2hex($str) {return wordwrap(bin2hex($str), 2, '-', 1);}
|
Обратно в string, как и писал BinLaden, с помощью pack
echo $s = '61-62-63-31-32-33'; // abc123
pack('H*', str_replace('-', '', $s));
|
| |
|
|
|
|
|
|
|
для: Trianon
(18.08.2008 в 18:51)
| | Слушаите, а откуда эта функция zнает 4то мне hex в string перещести надо. Mы же как парамнетер передатё толъко H как параметер. Я прочёл об етои функции тут http://de.php.net/manual/en/function.str-replace.php и не понял как она переводит из hex в string . мосчете пожалуйсто обяснит?
Да кстате спасибо функция работает | |
|
|
|
|
|
|
|
для: sirius1981
(19.08.2008 в 12:04)
| | Эта функция переводит данные из разных форматов в бинарные. Передать "H" достаточно, потому что это и обозначает HEX-строку с старшими четырями битами (high nibble) в начале. | |
|
|
|
|
|
|
|
для: BinLaden
(19.08.2008 в 13:40)
| | Est w php podobie funk4iie c++ isspace()
A to mne nado s4itiwat takuju stroku: F601190025 Drill stand abc;
i eto dolsno tak wigljadet:
vat1="F601190025 ";
var2="Drill stand ";
var3="abc"; | |
|
|
|
|
|
|
|
для: Sirius1981
(19.08.2008 в 16:13)
| | Не совсем понятно, как Вы хотите отличать конец строки, которую Вы запихнули в var2 и начало другой (она в var3)? | |
|
|
|
|
|
|
|
для: BinLaden
(19.08.2008 в 17:28)
| | A raslezit ja ich mogu tem 4to meschdu slowami est tab '\t'
t.e
0601190025 Drill stand abc | |
|
|
|
|
|
|
|
для: Sirius1981
(19.08.2008 в 17:41)
| |
<?php
print_r(explode("\t", "0601190025\tDrill stand\tabc"));
?>
|
А что будете делать, если понадобится сохранить текст с этим символом (табуляция)? | |
|
|
|
|
|
|
|
для: BinLaden
(19.08.2008 в 17:48)
| | Spasibo.
Simwoli tabuljazii ne ponadobjatsja - meschdu slowami wsegda est probel a meschdu kolonkami simwol tabuljazii. Tolko pripomoschi taboljazii ja mogu rasposnat konez stobza is xy.txt faila | |
|
|
|
|
 1.7 Кб |
|
|
для: BinLaden
(19.08.2008 в 17:48)
| | Priwet wsem!!! U menja nowaja problema.
problema w tom, 4to ja sadaju text: "привет как дела " perewoschu ego w hex polu4enii resultat pereedaju na printer (w ZPL_2) polu4aju w pesultate: "привет как ела " po4emu
Moschete gljanut moschet kto uweidet oschibku??? Ja dumaju wsja problema w finkzii :
function string2hex($str) {return wordwrap(bin2hex($str), 2, '-', 1);}
Code ja posilaju tosche.
Spasibo saranie. | |
|
|
|
|
|
|
|
для: Sirius1981
(03.09.2008 в 21:22)
| | Проблема точно не в функции. Она проста как апельсин. | |
|
|
|
|
|
|
|
для: BinLaden
(03.09.2008 в 22:51)
| | Nu a w4jem togda problema to? | |
|
|
|
|
|
|
|
для: sirius1981
(04.09.2008 в 14:17)
| | В обоих файлах "привет как дела" читается вполне отчетливо.
В отличие от файла.php ... и от большинства ваших сообщений здесь. | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2008 в 15:09)
| | я наверно не совсем коректно описал мою, проблему поробую ещё раз:
-Так вот: в _.тхт фаилах всё класно, всё отлчино, Explorer тоже всё ок. Проблема начинается когда я полу4иное hex-зна4ние строчки копирую и передаю в ZPL2. Принтер выдаёт на лебеле фигню как я и говорил - глотает буквы и делает пробели которых недолжно бытъ. В4ём может быть проблема???? | |
|
|
|
|
|
|
|
для: Sirius1981
(04.09.2008 в 17:31)
| | Где-то в принтере, шрифтах, где-то там еще...Но явно не в скрипте. | |
|
|
|
|
|
|
|
для: BinLaden
(04.09.2008 в 17:42)
| | Kto-to est kto rasberaetsja w ZPL2 i w Zebra printerach? | |
|
|
|
|
 17.5 Кб |
|
|
для: Sirius1981
(04.09.2008 в 19:26)
| | Так вроде бы проблему я локализировал. Но как поступит не совсем знаю.
Вот смотрите:
- опятьже у меня XSL -ехcелещскии фаил в нём арабкие слова.
-ок я как узнал из форума - я не могу просто так работат в PHP с XSl. Xорошо, я взял из XSL скопировал всё например в Notepade++ или EditPlus. Сохранил это всё в Unicode BigEndian.
!!!-- Проблема, которую я заметил толко в4ера, заклю4ается в том, 4то, --- когда я из EXCEL копирую техт в текстовои редактор, скопированыи текст уже неправилно выглядит. По4ему?- незнаю..........
Решением проблемы как мне показалос лу4ше всего закинут XSL фаил в PHP, но кроме XSL естъ так называемыи DIF. 4то из этих форматов лутше? Могут ли они оба работать с UNICODE с CSU-2? A moschno kakto sakinut Wordowskii fail w PHP?
-Блин как я задолбался с этими арабским шрифтом..... | |
|
|
|