вместо chr() для > 255

EugeneS

Новичок
вместо chr() для > 255

что можно использовать вместо chr для чисел более 255 ... мне надо конвертнуть а-ля chr('351')
 

kvf77

Red Devil
EugeneS

и по какому ты алгоритму хочешь конвертить? это у тебя что за символ такой двухбайтовый и так далее - короче - твой вопрос полностью пуст
 

EugeneS

Новичок
нормальный вопрос с написанным А-ЛЯ ... если не понял то так и скажи что именно нужно и скажи что вопроса не понял ...

задача: генерю pdf из хтмл, надо вывести румынскую "ţ".
для символов до & # 255 ; всё прекрасно но нужно что то что сможет выдать символ по его коду в данном случае 351 и 355
 

ksnk

прохожий
. Sorry!
А вставить два символа, chr(3).chr(55) не получается?
 

ksnk

прохожий
Ну, это-же была только идея :) К тому-же правильнее было в шестнадцатеричном виде написать...
 

kvf77

Red Devil
EugeneS

товарищ, не забывайтесь - твое объяснение изначальное ни в какую дуду так сказать, вот и определите - у вас какая кодировка используется хотябы?

Умник, толком описать проблему не может - а все тудаже - оскорбляемся мы видите ли
 

ForJest

- свежая кровь
ksnk
Погоди. Ты внёс предложение. Теперь его пожалуйста обоснуй - почему chr(3), chr(55) а не chr(35), chr(5)? Или chr(3), chr(5), chr(5)?
Или ты официально признаёшь, что написанное тобою было изначально лишено всякого смысла?
 

ksnk

прохожий
Кстатти chr(35) и chr(5) дадут код №535, в лучщем случае...
 

kvf77

Red Devil
ksnk

гм - ну вот опять специалист прикавылял - тебе поговорить больше нескем? Тебе вообще-то указывают на изначальную бредовость твоего совета, а какие именно цифры - это уже не имеет значения
 

EugeneS

Новичок
два chr дадут 2 символа в одной строчке ... завязывайте с флудом
 

ksnk

прохожий
Это - идея, которую я реально сам не проверял. Но смысл в ней я вижу :)
Символ в кодировке Юникод занимает 2 "настоящих" символа.
Так что для кода #351 это будут 2 символа с кодами #3 и #51.
Нужно только разобраться с порядком следования байтов.
Возможно к символу №3 придется добавить #80. N/T нужно проверить комбинации
#83 + #51,#3 + #51,#51+#3,#D1 + #3

Считайте все цифры, которые я написал шестнадцатеричными...
 

kvf77

Red Devil
EugeneS

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

будет тебе известно, чтобы произвести твое преобразорвание - надо знать кодировку и формат в котором "упакованы" твои символы. каким образом ты предполагаешь делать chr() если ты изначально не в курсе, в каком виде у тебя исходное число? ты в курсе каким образом в той же UTF-8 кодируются символы?
 

ForJest

- свежая кровь
ksnk
А можно узнать - сколько в одном байте помещается различных значений? Неужели 100?
 

ksnk

прохожий
Soory! Я иногда не выговариваю некоторых букв и цифр :)
Все цифры считайте шестнадцатеричными и будет несколько понятнее...
 

ForJest

- свежая кровь
ksnk
Выношу тебе предупреждение - твой уровень подготовки недостаточен для того, чтобы отвечать на форуме.
Если ты будешь продолжать сыпать бессмысленными сообщениями, то с большой степенью вероятности ты будешь переведён в Read Only Team.
 

EugeneS

Новичок
у меня HTML темплэйт в котором написано на пример "Obliga& #355;iunile"
у меня есть массив символов
$this->symbols = array(
"& #224;" => chr(224),
"& #225;" => chr(225),
"& #231;" => chr(231),
"& #232;" => chr(232),
"& #233;" => chr(233),
"& #251;" => chr(251),
"& #259;" => chr(259),
"& #351;" => chr(351),
"ţ" => chr(355),
);

после этого я одним стринг-реплэйсом меняю все символы а-ля & # 259 ; на реальный символ .... до кода 255 вариант с chr работал нормально ... сейчас есть необходимость заменить chr на что то другое (возможно самописную функцию) которая сможет выдать символ по его коду который > 255

что здесь не понятного ? :\ если кто то сталкивался и уже имеет готовую функцию, ссылку на оную или может подсказать как написать своё - скажу большой сенкс :)
 

kvf77

Red Devil
EugeneS

Вот так сразу надо было писать. Ответы на твои вопросы здесь в конкретных примерах:
http://phpclub.ru/faq/wakka.php?wakka=encodings&v=x3z

Также приведенные здесь ответы помогут тебе избежать определенных извратов в твоей работе и упростят тебе жизнь.

Кстати, насколько я понимаю, это кодировка UTF-16 а не UTF-8
 

ksnk

прохожий
Ответ, я надеюсь уже прозвучал.
А чтобы мне самому не казаться идиотом :) - Вот код, идею которого я пытался сумбурно довести... Он, конечно, никак не подойдет для решения задачи EugeneS, но кто-ж тогда знал...:
PHP:
<head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-16">
</head>
<body>
<?php
   function uchr($i) {return chr(0xc4+($i/256)).chr($i);}
?>
Hello! "&#351;"= "<?=uchr(351)?>" <br>
Hello! "&#352;"= "<?=uchr(352)?>" <br>
Hello! "&#353;"= "<?=uchr(353)?>" <br>
Hello! "&#354;"= "<?=uchr(354)?>" <br>
Hello! "&#355;"= "<?=uchr(355)?>" <br>
</body>
Для венгерской кодировки, во всяком случае работает
 
Сверху