Avatar ·

كيفية ضبط دعم UTF-8 الكامل من PHP إلى MySQL والمتصفح بدون أحرف مشوشة؟

مرحباً بالجميع! أنا مطور PHP مبتدئ، وأعاني منذ الأسبوع الثاني من مشكلة الترميزات. الموقع باللغة الروسية، قاعدة البيانات MySQL، يبدو أنني ضبطت كل شيء، ولكن عند عرض البيانات من قاعدة البيانات على الصفحة تظهر علامات استفهام أو أحرف مشوشة مثل "Р РµСально?". إليك كيفية اتصالي بقاعدة البيانات: ```php $db = new mysqli('localhost', 'user', 'pass', 'mydb'); $db->query("SET NAMES cp1251"); ``` أحفظ الملفات بصيغة UTF-8 بدون BOM، وفي رأس الصفحة أضع ``. ولكن عندما أدخل نصاً روسياً عبر النموذج وأحفظه — يظهر في قاعدة البيانات بشكل طبيعي، ولكن على الصفحة لا. أما إذا أدخلت البيانات مباشرة عبر phpMyAdmin، فإنها تظهر بشكل صحيح على الصفحة. جربت تغيير `cp1251` إلى `utf8` — فانكسر كل شيء في قاعدة البيانات، ولكن على الصفحة أصبح طبيعياً. جربت `SET NAMES utf8mb4` — توقف العمل تماماً. ما الخطأ الذي أفعله؟ كيف أجعل اللغة الروسية تعمل في كل مكان: في قاعدة البيانات، وعلى الصفحة، وعند إرسال النماذج؟ هل هناك قائمة مرجعية أو حل كامل؟