|
|
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. На PHP пишу давно, но я можно сказать ламер в нем. Нарвался на проблему. Опишу упрощенный алгоритм, с которым уже возникают проблемы со стороны сервера. Отправляю POST - данные из десктопного приложения multipart-form-data (использую виндовый Msxml2.XMLHTTP - версий от 6.0 - до без версии ). Кодировка Windows-1251, но перед отправкой делаю операцию NOT (побитную инверсию / поразрядное отрицание) над каждым байтом отправляемых данных. Разумеется, в .htaccess прописано AddDefaultCharset windows-1251 (данные все равно приходят в UTF-8 (хостинг TimeWeb) ). на PHP пишу такой г-код (упрощенный вариант): Код: php 1. 2. 3. 4. 5. 6. Строка абсолютно корректно преобразуется к первозданному виду (проверял). На клиенте перед отправкой точно так-же делаю NOT. Так вот, если сделать $cnt=strlen($my_data) ДО вызова функции iconv() , то размер принятых данных совпадает с отправленными (80 Кбайт). А после вызова iconv() размер мнее 500 байт. Примечание: последний символ блока данных после вызова iconv() встречается многократно по тексту (это пробел в оригинале), не помню деталь: включительно в строку или нет. Просьба подсказать, почему iconv() возвращает короткую строку данных. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:01:23 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
aswsРазумеется, в .htaccess прописано AddDefaultCharset windows-1251 (данные все равно приходят в UTF-8 (хостинг TimeWeb)Это указание вебсерверу на человеческий язык переводится примерно так: если не указано иное, сопровождать отдаваемый контент заголовком charset=windows-1251. Таким образом, к кодировкам самих данных он имеет весьма далекое отношение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:16:27 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
aswsА после вызова iconv() размер мнее 500 байт.Там кусок реальных данных или сообщение об ошибке? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:18:56 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
vkleaswsА после вызова iconv() размер мнее 500 байт.Там кусок реальных данных или сообщение об ошибке? ;-)кусок реальных данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:41:09 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
причем правильно преобразованных данных, в исходный формат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:42:19 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
aswsпричем правильно преобразованных данных, в исходный формат.получаемых на клиенте уже... Вся проблема с обрезкой блока - при вызове iconv() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 22:44:46 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
Странно это. Прикрепите файликом тестовый пример с реальными данными. Чтоб можно было выполнить на своей машине и увидеть проблему. Версию PHP и платформу укажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2012, 23:44:28 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
vkle, Закрытый формат данных и шифрования, не могу привести пример, точно исслюстрирующий проблему. Как обычно, написал про узкое место, что сам выявил. Думаю, тут проблема в глюке - преобразование кодировок, незнаю даже, с какой стороны, клиента или сервера. Сам уже думаю, что глюк со стороны Windows, ибо не привыкать. Буду менять шифрование, чтобы коды символов оставались в пределах 32-255 кодировки windows-1251. Только боюсь проблема останется со служебными кодами (13,10,9 и т.д.). Попробую, отпишусь, если что нарою. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:04:33 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
asws... Сам уже думаю, что глюк со стороны Windows, ибо не привыкать. ... Хотя не исключено, что и со стороны PHP, так как перед отправкой зашифрованный файл локально выглядит в полном порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:09:35 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
документацию конечно же не читаем. http://www.php.net/manual/en/function.iconv.php авторIf you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character and an E_NOTICE is generated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:21:27 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
ScareCrowдокументацию конечно же не читаем. http://www.php.net/manual/en/function.iconv.php авторIf you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character and an E_NOTICE is generated. Все я читал, этот символ встречается ранее много раз, даже набор символов..., однако почему-то строка обрывается именно в одном месте, вот это и непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:28:12 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
Повторюсь, на клиенте (отправляемые данные) и на сервере (принимаемые данные) имеют одинаковый размер. Повторюсь - проблема при вызове iconv Я очень редко задаю вопросы на проф-форумах, и обычно ответ выглядит так: это глюк используемого средства для работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:33:50 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
Версия PHP 5.2.12 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:39:04 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
Код: php 1. сработает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:44:51 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
ScareCrow Код: php 1. сработает?а смысл? Если хоть один байт будет пропущен - не расшифруется потом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 00:53:00 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
ты трудный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:10:50 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
ScareCrowты трудный.я знаю, со мной избегают общаться технари-попугаи, повтряющие заученные фразы и "правильные мысли", которые им кажутся своими ... , для меня абсолютно нет авторитетов , только уважаемые люди (за собственные оригинальные тех.терешения и алгоритмы), как знаю и то - что делаю все профессионально, даже если лопатой буду копать, иначе сижу на ж... и впадаю в депрессию и запой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 01:26:29 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
aswsБуду менять шифрование, чтобы коды символов оставались в пределах 32-255 кодировки windows-1251. Только боюсь проблема останется со служебными кодами (13,10,9 и т.д.).Может Base64 использовать? Там эта проблема решена. Только объем передаваемых данных немного больше получается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 10:11:24 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
vkle, Спасибо. Вчера забыл об этом, башка уже поздно не работала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 11:43:07 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
Все прекрасно заработало с Base64 iconv() вообще убрал из кода. Видимо iconv с бинарными данными некорректно работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 12:15:50 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
aswsВсе прекрасно заработало с Base64 iconv() вообще убрал из кода. Видимо iconv с бинарными данными некорректно работает. Почему это некорректно? Просто у одного программиста свое видение правильных данных, а у тебя другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 19:27:26 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
авторПросто у одного программиста свое видение правильных данных, а у тебя другое. просто кто то не занет ни что такое UTF-8, ни что такое iconv ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 19:54:21 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторПросто у одного программиста свое видение правильных данных, а у тебя другое. просто кто то не занет ни что такое UTF-8, ни что такое iconvэто в мою сторону намек что-ли? UTF-8 я прекрасно понимаю, а вот iconv я действительно не знаю, хотя пользую несколько лет. Думаю, что глюк в этой функции проявляется в процессе преобразования из UTF-8 в windows-1251 И это вполне может быть, независимо от уровня ваших знаний и опыта. Глюк есть глюк. Вот пример нарытого мной глюка: /topic/924772&hl= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 23:22:18 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
авторUTF-8 я прекрасно понимаю ну тогда расскажи почему у тебя преобразовагте не проходит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 23:33:26 |
|
||
|
что не нравится функции iconv() и есть-ли какая замена?
|
|||
|---|---|---|---|
|
#18+
ScareCrowавторUTF-8 я прекрасно понимаю ну тогда расскажи почему у тебя преобразовагте не проходит.Как я могу рассказать, если не знаю внутреннюю реализацию функции iconv ??? Этот вопрос надо разработчикам PHP задавать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2012, 23:40:10 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37930440&tid=1464773]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
279ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 548ms |

| 0 / 0 |
