Поддержка Проблемы и решения Русские буквы в сылке и в БД, как правильно

  • привет всем,
    установил вордпресс и обнаружил что ссылку на русском он обрезает до примерно 33знаков, поскольку в БД размер таблицы установлен varchar(200) а русские буквы перекодируются (зачем-то) в какие-то непонятные значки с процентами, что одна буква превращается в 6 знаков.
    Как отключить это перекодирование чтоб русские буквы нормальным образом сохранялись в БД?

    Не надо пожалуйста только говорить про невозможность этого — ибо: чем отличается русская буква Г от якобы нормальной латинской L, русская T от латинской t, русские НОРМСХУЕАВ и прочие от точно таких же на латыне???
    На ДЛЕ я кстати исправил данный момент и русские буквы нормальным образом сохраняются в БД, заменив в коде [^a-z0-9\_\-] на
    [^(\w)|(\x7F-\xFF)|(0-9)|(\_\-.)]
    И никаких проблем не возникает и никакой необходимости в замене русских букв на какие-то проценты нет.
    Как это можно исправить в БД

    Спасибо

Просмотр 15 ответов — с 1 по 15 (всего 56)
  • Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    какие-то непонятные значки с процентами,
    ..
    чем отличается русская буква Г от якобы нормальной латинской L, русская T от латинской t, русские НОРМСХУЕАВ и прочие от точно таких же на латыне???

    Учите матчасть.
    Википедия, конечно, не тот источник, но судя по стратпосту вполне удовлетворит (в данном случае глобальных противоречий со спецификациями не наблюдается)

    как правильно

    Использовать плагин для транслитерации.

    А по сути вопроса есть что-то что сказать?
    Я вроде бы написал что с ДЛЕ (система такая) такая же проблема была, которая элементарно решилась, поэтому не нужно мне рассказывать про так называемую «матчасть»..
    Матчасть ли? Кем и для кого придумана? Почему кодируются русские буквы а не наоборот,латинские? Ведь их меньше а значит по логике вещей их должны подгонять под русский, а не наоборот богатый и могучий под бедную латиницу.

    По сути: чем для техники одна буква отличается от другой (когда они даже пишутся одинаково) и не все ли равно для сервера что сохранять в базу данных? Вы видимо не хотите понять о чем я.
    Почему и для чего урл кодируется, если символы нормальным образом сохраняются в базе в кодировке utf (которая для того и придумана)

    Вы по сути вопроса бы мне лучше ответили: где происходит кодирование, проверка ссылки. А если еще и подскажите как исправить, то совсем отлично. Ответ на вопрос, как сохранять русские буквы я привел в первом сообщении, после чего они нормальным образом сохраняются в БД с кодировкой UTF-8-

    Использовать плагин для транслитерации.

    Транслитерация не совсем то что надо, поскольку мне ссылка нужна на русском

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    А по сути вопроса есть что-то что сказать?

    Если бы Вы прошли по ссылке, то поняли где суть. (я даже боюсь упоминать о спецификациях и утверждённых стандартах).
    Говоря проще — нет русского языка в УРЛ! Как нет и китайского и пр. других, кроме ограниченной латиницы.

    Почему кодируются русские буквы а не наоборот,латинские?

    Потому что интернет и его спецификации придуманные не в России 🙂 И совсем не для использования «других языков» (небольшой экскурс в историю рождения интернета поможет понять и проблемы «межязыкового» общения и причины возникновения кодировок).

    Если бы Вы прошли по ссылке, то поняли где суть

    Нет суть вопроса: КАК и ГДЕ и ЧТО исправить чтоб ссылки на русском сохранялись в том виде как есть а не кодировались в какие-то 6ти-значные проценты

    и пр. других, кроме ограниченной латиницы.

    ну надо же, какое глубокомысленное утверждение

    Потому что интернет и его спецификации придуманные не в России :

    Есть огромная тьма вещей придуманных в России но которыми пользуются все люди

    Например телефон. Но по телефону каждый говорит на своем языке, не так ли?
    Без которого и интернета бы не было.. К слову, интернет не существует сам по себе, а возможен благодаря электронике. В электронику же запрограммировать можно что угодно. Да и что такое интернет вообще? )) Законченный продукт в котором нечего больше улучшать?
    Это же элементарно

    Модератор Юрий

    (@yube)

    Например телефон. Но по телефону каждый говорит на своем языке, не так ли?

    Да, но номер все записывают исключительно арабскими цифрами.

    может кто-нибудь хоть что-то напишет по сути вопроса?

    Да, но номер все записывают исключительно арабскими цифрами.

    Ну при чем тут цифры? Что вы пытаетесь доказать? Были и другие к слову: латинские (римские), но по причине их несостоятельности, их и перестали употреблять. Сейчас существуют только эти, ими и пользуются. Цифры — не язык. Существовали бы в странах свои числа — их бы и использовали: как и язык. Язык отражается через буквы, которые мне хотят подменить на чужие.

    Лучше скажите где ссылка кодируется, и как исправить

    Лучше скажите где ссылка кодируется, и как исправить

    Вам надо подождать еще пару лет, пока окончательно во всех сферах цифры войдет кодировка UTF-8 (как минимум). А до этого момента терпите, или пишите свой стандарт кодировки символов, да так, чтобы все с вами согласились и приняли его..

    Что вы пытаетесь доказать?

    Никто ничего вам не доказывает, все говорят прописные истины, а вы слышать не хотите, имхо 🙂

    Говоря проще — нет русского языка в УРЛ!

    Уже не совсем верная фраза :)) Опера Некст уже поддерживает русскоязычные символы 🙂
    Вот копипаста заголовка топика
    http://ru.forums.wordpress.org/topic/Русские-буквы-в-сылке-и-в-БД-как-правильно?replies=9

    Вам надо подождать еще пару лет

    Кодировка UTF изобретена согласно википедии еще в далеком 1992, когда еще первые компьютеры (зарубежные) только появлялись (в России) .. Это к слову .. И никакой цифры и не было даже. А при чем тут кстати цифра (цифровая техника)? )) .. Вы видимо не знаете просто на чем работают сайты, да? :))

    или пишите свой стандарт кодировки символов

    глубокомысленно. Зачем изобретать велосипед, скажите, если всё давно есть?

    прописные истины

    истины они бывают разные: у каждого свои.

    Я же по-моему по-русски написал и даже два раза: никаких проблем с сохранением в базу данных русских букв БЕЗ КОДИРОВАНИЯ НЕТ в принципе.
    Так что нужно еще разобраться, кто кого не слышит.

    Я задал однозначный вопрос : где происходит это кодирование и как его отключить?

    К слову: кодировка UTF широко используется в линукс системах, коими являются абсолютное количествто серверов в интернете. И в линуксе с русскими символами также нет никаких проблем. Проблема в данном случае лишь в том, что кому-то зачем-то пришло в голову перекодировать русские буквы в непонятные проценты, хотя они элементарно сохраняются в базе данных в кодировке UTF..

    Это всего лишь кодировка. То есть если я сохранил слово «слово» в данной кодировке то оно и будет показано как СЛОВО, если вы НЕ включите для отображения ИНУЮ кодировку….
    Ну и к счастью, насколько мне известно, (хотя я и не знаю матчасти) абсолютно ВСЕ … броузеры и ЛИНУКС системы ПОДДЕРЖИВАЮТ данную кодировку.. А на линуксе так это стандартная кодировка..

    Так в чем тут проблема??

    Проблемы с кодировкой нет. Есть в головах

    может кто-нибудь всё-таки напишет что-то по сути вопроса:
    где отключить кодирование русских букв в проценты?

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    Уже не совсем верная фраза :)) Опера Некст уже поддерживает русскоязычные символы 🙂

    А я никогда не отрицал, что браузеры нас обманывают 😉 Спецификаций и стандартов никто не отменял.

    Вот копипаста заголовка топика

    Та же кописпаста (адрес, а не заголовок 😉 ) не из самого древнего ФФ под убунтой;) : http://ru.forums.wordpress.org/topic/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5-%D0%B1%D1%83%D0%BA%D0%B2%D1%8B-%D0%B2-%D1%81%D1%8B%D0%BB%D0%BA%D0%B5-%D0%B8-%D0%B2-%D0%91%D0%94-%D0%BA%D0%B0%D0%BA-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE?replies=12

    когда еще первые компьютеры только появлялись (в России) .. Это к слову

    :))
    Я Вас удивлю, но я «компьютером» начал пользоваться конце 80х прошлого века (даже сам их паял 😉 ). Но уже тогда знал, что они появились в СССР гораздо раньше 😉

    Опера Некст уже поддерживает русскоязычные символы

    для этого была создана вообще кодировка utf, которую понимает любой, даже древний броузер.
    Суть же вопроса в том, что вордпрессе русская буква перекодируется в 6-ти значное процентное нечто и соответственно занимает места в базе данных в 6 раз больше чем латинская. Таблица post_name имеет размер 200 знаков, и в итоге нормальная ссылка скажем в 100-150 знаков обрезается до 30-40 знаков.
    Вот из-за чего вопрос.

    (даже сам их паял

    Я Вас поздравляю. Я имел ввиду западные компьютеры и рынок. А то что ЭВМ были в СССР, мне известно.

    Модератор SeVlad

    (@sevlad)

    wp.me/3YHjQ

    Я имел ввиду западные компьютеры и рынок. А то что ЭВМ были в СССР, мне известно.

    http://ru.wikipedia.org/wiki/ZX_Spectrum — не западный? 😉
    Но он далеко не первый компьютер на территории России (точнее СССР)

    Кстати,

    Вы видимо не знаете просто на чем работают сайты, да? :))

    Не расскажите нам сирым?

Просмотр 15 ответов — с 1 по 15 (всего 56)
  • Тема «Русские буквы в сылке и в БД, как правильно» закрыта для новых ответов.