الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نقاط تعيق التحويل من ASP إلى PHP

مغلق
بدأه egy_soft في 11 نوفمبر 2005 · 7 رد · 1,101 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

إننى أقوم بتصميم أول موقع لى بالـPHP وهو عبارة عن موقع كنت قد صممتة بالـ ASP

بمعنى أدق اننى أقوم بتحويل الموقع من ASP إلى PHP فظهر لى بعض النقاط لم أعرف عنها شئ وهى

1- فى ASP يوجد Response.CodePage ويتم إعطائها رقم 1256 حتى يتم التعامل مع اللغة العربية من جهه السرفر فما هو المقابل لها فى PHP ؟

2- فى MS SQLServer أقوم بتحديد نوع حقل النص nvarchar و الـ Collation الخاص به بـ SQL_Latin1_General_CP1256_CI_AS

حتى يتم تسجيل اللغة العربية بدون أى مشاكل يتم كتابة حرف N قبل النص العربى الذى يتم إرسالة عند التسجيل مثل

N'أحمد'

و الذى أعرفة أن فى MySQL لا يوجد nvarchar و لكن يوجد varchar فهل عندما يتم تحديد الـ Collation له بـ cp1256_general_ci فسيكون مثل MS SQLServer ؟

وهل يجب وضع حرف N أيضاً عند تسجيل البيانات مثل MS SQLServer ؟

3- كيف يمكن تحويل النص من windows-1256 إلى utf8 حتى يمكن إرسال بيانات من صفحة صممت بـ windows-1256 إلى صفحة صممت بـ utf8 أو العكس ؟

هذه هى أهم النقاط التى تعيق تحويل الموقع

أرجوا إذا كنت تعرف أى معلومة تفيد فلا تتردد و شارك بها بسرعة لآننى متوقف عن عملية التحويل

شكراً

أحمد

#2
اقتباس
- فى ASP يوجد Response.CodePage ويتم إعطائها رقم 1256 حتى يتم التعامل مع اللغة العربية من جهه السرفر فما هو المقابل لها فى PHP ؟

php مش بتهتم باللغة اللى بتتعامل معاها (عربى , صينى ,المانى ) كله زى بعضه

اقتباس
2- فى MS SQLServer أقوم بتحديد نوع حقل النص nvarchar و الـ Collation الخاص به بـ SQL_Latin1_General_CP1256_CI_AS

حتى يتم تسجيل اللغة العربية بدون أى مشاكل يتم كتابة حرف N قبل النص العربى الذى يتم إرسالة عند التسجيل

...

و الذى أعرفة أن فى MySQL لا يوجد nvarchar و لكن يوجد varchar فهل عندما يتم تحديد الـ Collation له بـ cp1256_general_ci فسيكون مثل MS SQLServer ؟

وهل يجب وضع حرف N أيضاً عند تسجيل البيانات مثل MS SQLServer ؟

ايوة حتبقى زيها إن شاء الله لكن مفيش حرف N

اقتباس
- كيف يمكن تحويل النص من windows-1256 إلى utf8 حتى يمكن إرسال بيانات من صفحة صممت بـ windows-1256 إلى صفحة صممت بـ utf8 أو العكس ؟

php Manual.iconv

و ربنا يوفقك :)

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#3

ألف ألف شكر أخى shreef

#4

شريف اشكرك على معلومة التحويل الى utf8

Let's google help you Before ask

--------------------------

My Blog : www.phplover.net

#5

العفو يا مصطفى :)

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#6

أخى شريف

صنعت قاعدة البيانات و جعلت Collation لها و لكل جدول و لكل حقل نصى cp1256_general_ci

ثم قمت بتسجيل البيانات و لم أعرف أنها سجلت صحيحة أم لا و لكن عند إستدعاء البيانات من الجدول تظهر لى على شكل علامات إستفهام (؟؟؟؟؟؟؟)

مع العلم أنه تم و ضع السطر

<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">

فى الصفحة

و لكن عند تحويل Collation من cp1256_general_ci إلى latin1_swedish_ci مثل منتدى phpbb2 و هو الأختيار الطبيعى عند إنشاء القاعدة

يتم تسجيل البيانات بدون مشكلة و قرائتها أيضاً و لكن عندما أضع أمر ORDER BY فى نص SQL لم يرتب البيانات بطريقة صحيحة

فما هى المشكلة الأولى و الثانية؟

شكراً

أحمد

#7
اقتباس
ثم قمت بتسجيل البيانات و لم أعرف أنها سجلت صحيحة أم لا و لكن عند إستدعاء البيانات من الجدول تظهر لى على شكل علامات إستفهام (؟؟؟؟؟؟؟)

المشكلة دى كات بتحصل معاية لما كنت بدخل قيم من phpmyadmin

بحيث انه بيبعت البيانات على اساس انها utf8 و انا بسترجعها فى صفحتى بتشفير مختلف فتظهر ؟؟؟؟؟؟

معرفش لو نفس السيناريو حصل معاك او غير كدة , لكن انا كنت بستخدم الأستعلام دة قبل مطلب اى حاجة من MySQL

SET NAMES 'utf8'

عموما انا من تجربة لاحظت ان MySQL بتحفظ الى انت بتبعته زى مهو مهما كان نوع التشفير اللى فى الجدول - إن صح التعبير -

اقتباس
عندما أضع أمر ORDER BY فى نص SQL لم يرتب البيانات بطريقة صحيحة

انا على حد علمى ان فى مشكلة فى MySQL فى التعرف على الحروف العربى و ترتيبها لأن بصراحة انا مش بشتغل مع اللغة العربية فى MySQL الا نادرا

لكن إن شاء الله يكون حد من الأخوة عنده فكرة كويسة عن الموضوع دة

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#8

الف شكر أخى شريف

لقد بحثت كثيراً بعد إرسال الرسالة و لقيت الحل

فى هذا الرابط

Charset-connection

و الحل هنا هو تحديد Charset connection عند الإتصال بالـ mysql

فيجب إرسال كما ذكرت و لكن بعد تعديل utf8 إلى cp1256

SET NAMES 'cp1256'

أو إرسال

SET CHARACTER SET cp1256

بعد الإتصال بالـ mysql

و أنا قمت بإستخدام الكود الثانى لأنى قمت بقراءة سورس phpmyadmin الخاص بهذة النقطة و لقيتة مستخدمها وتم حل المشكلة والحمد لله

فمن الممكن إستخدام phpmyadmin لإدخال البيانات و قرائتها بدون أى مشكلة فى الموقع و العكس صحيح

شكراً

تم تعديل هذه المشاركة بواسطة egy_soft في 20 نوفمبر 2005 في 16:41

هذا الموضوع مغلق.

مواضيع مشابهة