LINUX.ORG.RU

UTF-8, preg_match, кириллица. Опасность для российской науки!

 ,


0

1

Добрый день, уважаемые ЛОРовчане!

Я вообще психолог и регулярно сталкиваюсь с тем, что необходимо опросить много людей, встретиться с которыми сложно. Собственно, я пользуюсь платформами для опросов и прочим таким делом. Сейчас вот наткнулся на необходимую штуку, которая требует размещения на хостинге. Ну, я и разместил. Собственно,вот ссылка на гитхаб. Чего оно делает не так важно, как проблема, с которой столкнулся при тестировании. Короч, есть там «experimenter.php», которое позволяет экспериментатору написать слова, которые потом будут предъявляться респондентам. Я это дело потестил и выяснил, что слова, написанные латиницей, не сохранются. Совсем никак и никуда не записываются в итоге. Ну, начал выяснять чего происходит. Собственно, сам по себе я мало чего понимаю в php или js - на уровне «могу с гуглом» или «готовые решения на js, где простые вещи делаются просто». Но мне хватило для того, чтобы понять, что раз оно не выдаёт кашу, а просто не пишется, то, вероятно, причина где-то в районе отправки. Собственно решить проблему было предложено через добавление в «preg_match» букв «А-ЯЁa-яё» в «core/fileManager.php». Решение сработало. Действительно стало записываться, но появилась новая куда менее понятная мне проблема. Слова кириллицей капсом - пишутся, а вот если строчными - совсем нет. При этом, слова, которые начинаются с заглавной буквы, а потом идут строчные - могут сохраняться, а могут и нет. То есть слово «Один» сохраняется, а вот слово «Рука» - нет. «РУКА» же сохраняется без проблем. Никак не могу разобраться с этим, а вещь эта нужна и вариант писать всё капсом не подходит. Прошу прощения заранее, если такое «бытовое» объяснение вызовет у кого-то негативные эмоции.

Заранее спасибо за помощь!



Последнее исправление: kirich (всего исправлений: 1)

блин, платформа для опросов — это же такая элементарная шняга, как там можно было накосячить, надо дебилом просто быть. Почему Вы не требуете с программиста, который ее писал, чтобы он исправил ошибки?

filequest
()

Короч, есть там «experimenter.php», которое позволяет экспериментатору написать слова, которые потом будут предъявляться респондентам.

Если это ты сам пишешь там слова, так убить нафиг эту проверку. Ти же в курсе что пишешь. И вообще зачем там для проверки текста регулярки, если нет строгих правил для формата?

kiotoze ★★★★
()
Ответ на: комментарий от filequest

Ну, я простой исследователь, программистов не имею. Дело это нашёл в сети. Делал эту платформу англоязычный исследователь и с латиницей оно работает. А вот почему такая проблема с кириллицей - понятия не имею и пытаюсь самостоятельно в этом разобраться. Писал разрабу, но ответа не получил, а запускать уже надо бы.

kirich
() автор топика

Попробуй указать charset=utf8 в $dsn. Про модификатор u уже сказали.

И да, код страшное говно, SQL-injection в каждой десятой строке, копипаста кругом - фу.

no-such-file ★★★★★
()
Ответ на: комментарий от kiotoze

Хм, пока выломал это дело по else if ( preg_match(true.

Конечно, за такое полагается руки вырывать, но решил, что пока такое временное решение будет уместным

kirich
() автор топика
Ответ на: комментарий от kiotoze

киотозник прав, у те-эса просто два раза проверка срабатывает, вот и всё, вообще для таких целей бильбоха была сделана, но она другосистемная, и, очень специфичная [во втором смысле этого слова]. Пробывать от линя Мятного вкукаречить что-нибудь (с загрузки), либо какой «украина» язык попробывать, наверно может удасться.

anonymous
()
Ответ на: комментарий от anonymous

Будем тестить. Всем ещё раз большое спасибо за помощь и понимание!

kirich
() автор топика
Ответ на: комментарий от bookman900

Спасибо! Поднял. Буду пробовать.

kirich
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.