Кириллица в латиницу и обратно на PHP

jcrush
На сайте с 04.07.2004
Offline
371
14048

Добрый день всем! Ника не получается решить такую проблему.

Есть стока русских букв, перевожу ее в латиницу функцией замены, все нормально, но вот обратно не получается ибо делаю я это заменой к примеру

Я=>YA

а обратно не всегда верно происходит, ибо Y=>Й и т.п. а мне надо с точностью сконверитровать обратно.

Как такое можно решить?

Если можно с примерами ибо в пхп нуб.

» Блог (http://blog.stfw.ru/) - SEO-заметки. ДВчат: @dvchat (https://t.me/dvchat)
pikasso
На сайте с 27.01.2008
Offline
150
#1

Первое что я нашел в гугле.

Пример вроде работает нормально.

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#2
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
T.R.O.N
На сайте с 18.05.2004
Offline
314
#3

jcrush,

1. Возьмите один из ГОСТОВ, тогда проблем не будет, главное примите правило, что сначала заменяются 2-х буквенный, потом остальные

я использую или BSI или ГОСТ 7.79-2000 (ISO-9)

http://www.gsnti-norms.ru/norms/common/doc.asp?2&/norms/stands/7_79.htm

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
jcrush
На сайте с 04.07.2004
Offline
371
#4

я же написал что двухбуквенники заменяются не правильно в обратном порядке, еще варианты есть?

T.R.O.N
На сайте с 18.05.2004
Offline
314
#5
jcrush:
я же написал что двухбуквенники заменяются не правильно

так именно об этом и сказал. Сначала делаете по госту, потом 2-х буквенники заменяете назад (транс -> рус) первыми, потом уже однобуквенники. Ошибок просто не может быть.

[Удален]
#6
T.R.O.N:
Ошибок просто не может быть.

При неравном количестве букв в алфавитах ошибки будут всегда.

яд => jad => яд

йад => jad => яд

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

T.R.O.N
На сайте с 18.05.2004
Offline
314
#7
mrFatCat:
При неравном количестве букв в алфавитах ошибки будут всегда.

я же сказал, посмотрите на ГОСТ. Что Вы занимаетесь самодеятельностью!

й - jj

T.R.O.N добавил 21.12.2009 в 10:08

mrFatCat:
йад

да и такое слово это из языка пАдонков, если не ошибаюсь

а -> a

б -> b

в -> v

г -> g

д -> d

е -> e

ё -> jo

ж -> zh

з -> z

и -> i

й -> jj

к -> k

л -> l

м -> m

н -> n

о -> o

п -> p

р -> r

с -> s

т -> t

у -> u

ф -> f

х -> kh

ц -> c

ч -> ch

ш -> sh

щ -> shh

ъ -> "

ы -> y

ь -> '

э -> eh

ю -> ju

я -> ja

при этом для URL ь и ъ не кодируются

jcrush
На сайте с 04.07.2004
Offline
371
#8

при таком варианте мягкий и твердые знаки если делать URLы могут не отрабатывать, но се равно всем спасибо.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#9

jcrush, а вот урлы с траслитом, чисто на мой взгляд - это просто кошмар. Как вижу, так называемый ЧПУ, просто пипец

jcrush
На сайте с 04.07.2004
Offline
371
#10

у меня просто ЦМС своего рода специфичиская получилась, по крайней мере ничего лучше не придумал.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий