Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конвертация из bin2hex() в норм. строку. КАК ? Подскажите как обратно преобразовать ! 
V
    Опции темы
numerovan
Дата 24.10.2009, 06:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: -1
Всего: 2



Ситуация такая ... мне нужно сделать сайт на двух языках : на немецком и на русском . В немецком алфавите есть так называемые УМЛАУТЫ , utf-8 их хорошо различает, а вот в windows-1251 проблема , но есть замена их на "Ä" и т.д.. В utf-8 кириллица весит в 2 раза больше чем на windows-1251, поэтому не хочу ради 5 символов менять кодировку.
Я сделал следующее : имеется строка с этими УМЛАУТАМИ , строку перевожу с помощью bin2hex() , от тудова по поду символа заменяю на "Ä" и т.д. ... а после хочу обратно строку в нормальный вид перекодировать, но что т не получается ... Можно конечно посимвольно распознать и заменить, боюсь что нагрузка на сервер будет хорошая. НЕ ПОДСКАЖЕТЕ МОЖЕТ ЕСТЬ КАКАЯ НИБУДЬ ФУНКЦИЯ , КОТОРАЯ ПРЕОБРАЗОВЫВАЕТ В ЧИТАБЕЛЬНЫЙ ВИД ?

Вот что у меня есть :
Код

function convert_de($word){
    $word = bin2hex($word);
    $word = str_replace("c39c", "Ü", $word);
    $word = str_replace("c3bc", "ü", $word);
    $word = str_replace("c396", "Ö", $word);
    $word = str_replace("c3b6", "ö", $word);
    $word = str_replace("c384", "Ä", $word);
    $word = str_replace("c3a4", "ä", $word);
    $word = str_replace("c39f", "ß", $word);
    $word = bindec($word); // <--- вот тут надо обратно переконвертировать
    return $word;
}

PM MAIL   Вверх
youri
Дата 24.10.2009, 06:48 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 17.4.2004

Репутация: нет
Всего: 16



расслабься и используй utf-8 ;)
PM   Вверх
numerovan
Дата 24.10.2009, 07:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: -1
Всего: 2



Скажу почему я не хочу использовать utf-8, потому что она увеличивает кириллицу, а у меня там кириллицы будет очень много ... ради нескольких символов не хочится жертвовать дисковым пространством. Да дело даже и не в пространстве ... просто реально интересно ... А МОЖНО ЛИ ПЕРЕКОНВЕРТИРОВАТЬ ... если так , то почему бы и нет ?
PM MAIL   Вверх
Ипатьев
Дата 24.10.2009, 09:07 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 1
Всего: 37



Очень смешная причина не исползовать UTF. Дисковое пространство просто трещит по швам.
PM MAIL   Вверх
Wolf1994
Дата 24.10.2009, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 1
Всего: 29



Попробуйте заменять оригинальные символы, без перевода в шестнадцатеричный формат.
PM MAIL WWW   Вверх
numerovan
Дата 24.10.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: -1
Всего: 2



Мужики,  я понимаю Вам смешно от этой ситуацией , но как говориться ЗАЧЕМ ПЛАТИТЬ БОЛЬШЕ, КОГДА МОЖНО ЗАПЛАТИТЬ МЕНЬШЕ ... я так к слову ...

"Попробуйте заменять оригинальные символы, без перевода в шестнадцатеричный формат" - функция bin2hex() кодирует ВСЮ строку сразу, после я могу выследить эти УМЛАУТЫ , по другому не вижу способа для отслежки. Хотя можно и по символьно отслеживать и заменять ... ну вот встречный ворос КАК ЭТО БУДЕТ ВЛИЯТЬ НА РЕСУРСЫ СЕРВЕРА ?

Помоему чтоб отследиь посимвольно это идея ... ))

КТО НИБУДЬ ЗНАЕТ КАК ПРОВЕРЯТЬ КОД НА ПРОИЗВОДИТЕЛЬНОСТЬ ? Т.Е. Я НАПИСАЛ КОД, ДОПУСТИМ, И МНЕ ПО ВРЕМЯНИ ПОКАЗЫВАТЬСЯ ЧТО ОН ВЫПОЛНИЛСЯ ДОМУСТИМ В 0.5 СЕК , ДАЛЕЕ ПЕРЕПЕСАЛ КОД , В ЛУЧШУЮ СТОРОНУ И МНЕ ПОКАЗЫВАТЬСЯ ЧТО КОД ВЫПОЛНИЛСЯ ЗА 0.2 СЕК .... КТО ЗНАЕТ КАК ТАК СДЕЛАТЬ ?
PM MAIL   Вверх
bars80080
Дата 25.10.2009, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(numerovan @  24.10.2009,  23:32 Найти цитируемый пост)
КТО НИБУДЬ ЗНАЕТ КАК ПРОВЕРЯТЬ КОД НА ПРОИЗВОДИТЕЛЬНОСТЬ ? 

microtime() или getmicrotime() поможет



Цитата(numerovan @  24.10.2009,  23:32 Найти цитируемый пост)
но как говориться ЗАЧЕМ ПЛАТИТЬ БОЛЬШЕ, КОГДА МОЖНО ЗАПЛАТИТЬ МЕНЬШЕ

возникает серьёзный вопрос: а в каком случае больше, а в каком меньше?
PM MAIL WWW   Вверх
numerovan
Дата 25.10.2009, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: -1
Всего: 2



Цитата

возникает серьёзный вопрос: а в каком случае больше, а в каком меньше?

В итоге будет сайт знакомств ... где русскоязычные будут пополнять базу своими сообщениями и через год эта база будет весить в 2 раза больше нежели если было бы всё в кодировке windows-1251, а не в utf-8 ... из-за этого я так говорю.

Добавлено через 1 минуту и 6 секунд
 ЕСТЬ КАКАЯ НИБУДЬ ФУНКЦИЯ , КОТОРАЯ ПРЕОБРАЗОВЫВАЕТ В ЧИТАБЕЛЬНЫЙ ВИД ?
PM MAIL   Вверх
NLspieler
Дата 25.10.2009, 07:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 1
Всего: 19



Для сайта знакомств все же лучше использовать utf. 
Вдруг пользователю захочется написать сообщение на китайском или зимбабвянском?

Кроме того, если я не ошибаюсь, если поставить на страницу кодировку windows-1251,
то "ü" , "ö" , "ä" будут приходить без точек, а вместо ß будет приходить пробел. 



Это сообщение отредактировал(а) NLspieler - 25.10.2009, 07:44
PM MAIL   Вверх
bars80080
Дата 25.10.2009, 10:42 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 2
Всего: 315



Цитата(numerovan @  25.10.2009,  06:56 Найти цитируемый пост)
возникает серьёзный вопрос: а в каком случае больше, а в каком меньше?

В итоге будет сайт знакомств ... где русскоязычные будут пополнять базу своими сообщениями и через год эта база будет весить в 2 раза больше нежели если было бы всё в кодировке windows-1251, а не в utf-8 ..

я спрашивал не про объёмы на жёстком диске, а про "платить". по моему всем этим гемором ты уже платишь больше, чем пришлось бы с ютф. мало того, за впоследствии возникающие косяки тоже придётся расплачиваться.
если бы ты нанимал работника за настоящую деньгу, а не транжирил собственное время, то я думаю для тебя вопрос решился бы быстро. за что платить больше
PM MAIL WWW   Вверх
Bishop
Дата 25.10.2009, 14:01 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 188
Регистрация: 3.6.2005
Где: Минск, Беларусь

Репутация: нет
Всего: 16



numerovan
судя по приведенному коду, вы вообще не понимаете, что в нем происходит.

Почему вы тогда не пишете просто:
Код

...
str_replace("ц", "&ouml;", $word); // "ö"
...


Хотя ищете вы похоже такой выход:
Код

function convert_de($word){
return htmlentities($word)
}

Цитата
КАК ЭТО БУДЕТ ВЛИЯТЬ НА РЕСУРСЫ СЕРВЕРА

отрицательно
Цитата
через год эта база будет весить в 2 раза больше нежели если было бы всё в кодировке windows-1251, а не в utf-8

не в два. Экономя дисковые ресурсы, вы тратите больше ресурсов процессора. При этом ограничиваете себя и пользователей.
Цитата
не хочу ради 5 символов менять кодировку

а потом вы вспомните про украинский алфавит, где тоже всего-то два (не знаю сколько) символа дополнительных, потом белорусский…

Самое главное: пользователь с немецким интерфейсом не сможет общаться с пользователем с русским интерфейсом ни на каком языке. Но зачем я это вам рассказываю. Главное для вас место на диске — решение я привел выше.

Правильный же ответ уже озвучен: использовать utf8.

Это сообщение отредактировал(а) Bishop - 25.10.2009, 14:03
PM WWW ICQ   Вверх
MoLeX
Дата 26.10.2009, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: нет
Всего: 140



Цитата(numerovan @  25.10.2009,  06:56 Найти цитируемый пост)
ЕСТЬ КАКАЯ НИБУДЬ ФУНКЦИЯ , КОТОРАЯ ПРЕОБРАЗОВЫВАЕТ В ЧИТАБЕЛЬНЫЙ ВИД



 ! 
MoLeX


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



Это сообщение отредактировал(а) MoLeX - 26.10.2009, 07:28


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
numerovan
Дата 3.11.2009, 07:55 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 549
Регистрация: 1.12.2007

Репутация: -1
Всего: 2



Всё мужики понятно ... Правильно подметили что ещё и украинский там о своём даёт знать и белорусский и т.д. Понятно - ЛУЧШЕ ИСПОЛЬЗОВАТЬ UTF-8 !

кстати
Цитата

Кроме того, если я не ошибаюсь, если поставить на страницу кодировку windows-1251,
то "ü" , "ö" , "ä" будут приходить без точек, а вместо ß будет приходить пробел.

эти символы будут не правильно отоблажаться, Вы правильно подметили, поэтому я пользовался функцией bin2hex(), которая переводила в 16-ый вид , а после я находил эти УМЛАУТЫ и заменял их на нормальный вид (&ouml;)

Цитата

Почему вы тогда не пишете просто:
str_replace("ц", "&ouml;", $word); // "ö"

В первое значение функции str_replace() НЕ ПРИХОДИТ символ кириллицы, немецкие УМЛАУТЫ не распознаются так, поэтому я пользовался функцией bin2hex(), это как бы компрамис между кодировками.
Цитата

Экономя дисковые ресурсы, вы тратите больше ресурсов процессора. При этом ограничиваете себя и пользователей.

Вы тут правильно подметили ... если моя функция будет потоянно проверять каждый символ , и если сразу будет много народу сидеть ... то нагрузка на процессор будет большая.
Цитата

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

Что это за ПРЕДЛОЖЕНИЕ , я так и не понял ).

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.1115 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.