Этот топик читают: Гость
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 16:10:51 |
|||
карма: 0 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 16:10:51 |
|||
карма: 0 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
А вот так работает
![]()
Да не поддерживает он русские символы К тому же тэг code пишется не как kod, так что исправь |
|||
карма: 22 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 2 раз(а), последний 2025-01-10 16:10:51 |
|||
карма: 0 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
Действительно, муть какая-то, а не Base64
![]() ------------ Дoбавленo: Мдяяя уж... Надо же умудритсья перепутать кодер с декодером, да еще и глючным слегка |
|||
карма: 22 |
|
Ответов: 5446
Рейтинг: 323
|
|||
nesco, ага, вспоминаю, как я давным-давно этот компонент под PocketPC переделывал...
|
|||
карма: 1 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
И вообще-то TEST -> WIN_BASE64 не VEVTVA==, а VEVTVA0K
Вот, специально проверил
------------ Дoбавленo: iarspider писал(а): вспоминаю, как я давным-давно этот компонент под PocketPC переделывал...А переделать под Delphi -- руки не дошли, ай как не хорошо ![]() Пришлось мне доделывать. ------------ Дoбавленo: Поправил. Исправленный компонент можно взять здесь [svn]Charset.pas[/svn] А вот пример для проверки
Оказывается, и на прошлом релизе работает, только надо было поменять кодер и декодер местами |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
не понял причину правок от 955 ревизии - какая ошибка исправлялась?
![]() |
|||
карма: 27 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
Dilma
1-е: Cтандарт предусматривает длину строки в кодировке Base64 не более 76 символов (57 в Win). 2-е: В исходной строке при декодировании в Win из Base64 не должно быть символов #13#10, она должна быть непрерывной 3-e: В старом релизе перпутан кодер с декодером. Я привел пример, где исходные, взятые извне, стандартные строки Base64 декодируются в текст и обратно. Из примера видно, что после декодирования и кодирования обратно, исходные строки не меняются. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco,
1-e: выходом всех кодеров base64 является непрерывная строка, не разделенная на строки. См. пакеты WEB, QT и прочие распространенные реализации 2-е: не должно там быть не только этих символов, но и любых иных, кроме 64-х, указанных в стандарте. Почему декодер должен удалять только два из них ![]() Т.е. указанные выше правки это не fix ошибки, а косметические доработки под конкретные задачи. Доработка 1 кроме всего прочего ведет еще и к потере совместимости с ранее созданными схемами. Поэтому видимо данные "улучшения" придется откатывать. |
|||
карма: 27 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
Dilma писал(а): указанные выше правки это не fix ошибкиДа, понял, но 3-й пункт надо оставить. ------------ Дoбавленo: Откатил, но привел в соответствие Coder и Decoder Base64 |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
nesco, ну вообще-то 3-й пункт надо исправлять перестановкой названий в ini файле. А такой фикс опять таки же ведет к потери совместимости со схемами, собранными ранее.
|
|||
карма: 27 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
Dilma писал(а): ну вообще-то 3-й пункт надо исправлять перестановкой названий в ini файлеДа можно было и в ini поменять, но в кодах уже было переделано, и я просто поубирал ненужное и вернул на место. Dilma писал(а): совместимости со схемами, собранными ранееСтранно получается, чел ставит Win_Base64, а получает Base64_Win и задает вопросы, что компонент глючный. Лучше уж, наверное, правильно сделать на будущее, хоть вопросов больше таких не будет, а схемы свои можно поправить, на иконках-то видно какая кодировка стоит. Dilma, тут ты смотри сам -- стОит, или не стОит. Главное, что обнаружено несоответствие между написанным и действующим. |
|||
карма: 22 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Это скорее совет на будущее - думать не только, как устранить проблему, но и как сохранить совместимость с ранее существующими версиями.
|
|||
карма: 27 |
|
Разработчик
Ответов: 26303
Рейтинг: 2146
|
|||
Dilma писал(а): но и как сохранить совместимость с ранее существующими версиямиЯ, по-возможности, стараюсь это делать всегда, но тут было явное несоответсвие, что и привело к запутанному результату. Я признаю, что повелся, следующий раз буду осторожнее с выводами ![]() |
|||
карма: 22 |
|