У мене є програма, яка працює з клієнтами з усього світу, і, природно, я хочу, щоб все, що знаходиться в моїх базах даних, було закодовано UTF-8.
Основна проблема для мене полягає в тому, що я не знаю, яким буде кодування джерела будь-якого рядка - це може бути з текстового поля ( <form accept-charset="utf-8">
корисне використання лише у тому випадку, якщо користувач фактично подав форму), або це може бути з завантаженого текстового файлу, тому я дійсно не маю контролю над введенням.
Мені потрібна функція або клас, який гарантує, що речі, що потрапляють до моєї бази даних, наскільки це можливо, закодовані UTF-8. Я спробував, iconv(mb_detect_encoding($text), "UTF-8", $text);
але у цього є проблеми (якщо вхід "наречений", він повертає "наречений"). Я спробував багато речей = /
Для завантаження файлів мені подобається ідея попросити кінцевого користувача вказати кодування, яке він використовує, і показати їм попередній перегляд того, як буде виглядати вихід, але це не допомагає проти неприємних хакерів (насправді це може зробити їх життя трохи легше).
Я читав інші запитання щодо цієї тематики на цю тему, але, здається, всі вони мають тонкі відмінності, такі як "Мені потрібно розібрати RSS-канали" або "Я скреблю дані з веб-сайтів" (або, справді, "Ви не можете").
Але має бути щось, що, принаймні, добре спробувати !
UTF-8//IGNORE
як 2-й парам в iconv
?