|
|
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Помогите, плиз разобраться, ибо уже в конец запутался. Итак: есть 2 сервера передающие друг другу данные при помощи GET/POST с моей стороны есть java (utf-8) - с той стороны ??? (koi8-r) как я понимаю, все String в Java хранятся в UTF-8 я формирую строку в которой "DATA=test" Код: java 1. Потом подписываю эти данные через Signature Код: java 1. и формирую строку для отправки Код: java 1. 2. 3. вот все так работало, до тех пор пока не понадобилось передать русские буквы "DATA=тест" если оставить как есть, то DATA%3D%3F%3F%3F%3F т.е. DATA=???? - так расшифровывает сервер на той стороне, и при этом подпись нормальная! если делать Код: java 1. 2. 3. то после URLEncode получается правильное DATA%3D%D4%C5%D3%D4 но подпись не получается, второй сервер отвечает: Код: xml 1. если начинать менять кодировку тут Код: java 1. то тогда даже в URLEncode получается непонятно что. Может кто сталкивался с таким? Может есть хоть какие-то идеи? Буду рад любым идеям! Заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:08:30 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
Lihmanкак я понимаю, все String в Java хранятся в UTF-8 Это показывает принципиальное непонимание процесса кодировки строк. Совершенно не важно как String хранится в Java. String содержит Unicode символы. Но это не конкретная кодировка. Это лишь алфавит. UTF-8, ASCII, KOI8-R это уже кодировки. Они указывают то как именно String представлен в виде байт. Проблема в том что внутри метода AbstractRequest.getSignBytes(dataEnc, signature); Вы где-то преобразуете dataEnc в byte[], используя текущую системную кодировку: System.getProperty("file.encoding") А потом говорите что полученая подпись она для байтов полученых уже как KOI8_R текущей строки. Вот и не совпадает. В качестве теста, попробуйте запустить программу с ключом -Dfile.encoding=KOI8-R ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:19:06 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
Да я и не настаиваю, что я все знаю! .... я только пытаюсь постичь вот собственно сама функция подписи Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:33:09 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
line.getBytes() эквиваленте line.getBytes(Charset.defaultCharset().name()) Здесь вы получаете байте в текущей кодировке и создаёте для этих байт подпись. Ваша текущая кодировка не KOI-8r, поэтому когда вы говорите серверу, что вот вам строка закодированая в HEX байты а вот для неё подпись, то логично, что подпись не подходит, так как она была создана для других байт. Можете попробовать как вариант и такой код: signature.update(line.getBytes("KOI8-R")); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:46:08 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
Да, спасибо, что ткнули носом!! Уже вроде как получилось!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:47:49 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
LihmanДа я и не настаиваю, что я все знаю! Я говорю о ключевом моменте к понимаю кодировок. Не надо знать "всё". Нужно понимание. Когда вы осознаете что "кодировка" это то как именно "строка(абстрактный текст)" представлена в виде "байт(кокретные двоичные данные)", то проблемы кодировок, для вас перестанут существовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:48:26 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
Видать еще не дорос до такого :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 14:58:26 |
|
||
|
кодировки русских букв
|
|||
|---|---|---|---|
|
#18+
LihmanВидать еще не дорос до такого :) Сам удивляюсь, как такая простая тема, порой вызывает столько недопонимания. Тоже несколько лет для меня кодировки были каким-то туманным миром загадок. А потом когда осознал чем именно они являются, все проблемы пропали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2013, 15:06:09 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38360935&tid=2128841]: |
0ms |
get settings: |
16ms |
get forum list: |
20ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
60ms |
get topic data: |
20ms |
get forum data: |
5ms |
get page messages: |
78ms |
get tp. blocked users: |
3ms |
| others: | 299ms |
| total: | 513ms |

| 0 / 0 |
