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

مشكلة اللغة العربية في موقعي

مغلق
بدأه mystar14 في 9 أغسطس 2006 · 10 رد · 938 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

في احد من الاخوان يخرجني من هذه المشكلة الخاصة باللغة العربية في host الذى يدعم اللغة الانجليزية

هذا طريقة التي يتم تخزين بها البيانات موجودة بالملف المرفق

لكن عندما اضع البيانات بهذا الموقع تظهر بالصورة السليمة

هذا الرابط

كيف اقوم باصلاح قاعدة البيانات من هذه المشكلة

ارجو المساعدة من اللذين لديهم الخبرة في هذا المجال

mytext.txt

تم تعديل هذه المشاركة بواسطة mystar14 في 9 أغسطس 2006 في 01:29

#2

السلام عليكم

لا اجابة حول هذه المشكلة

#3

السلام عليكم اخي الكريم

لم اتعامل مع اللغة العربية في mssql

ولكن جرب الطريقة التاليه

create table tablename
 ( fid int primary key,
   fname nvarchar(50) collate arabic_ci_as )

واصلا جهازي يدعم اللغة العربية فجربها وان شاء الله تزبط

ولكني واجهتني المشكلة في الأكسس

فأضطررت الي تحويل البيانات الي Unicode HTML في قاعدة البيانات

وعند ادخال بيانات الى القاعدة احولها الى unicode html

وعند البحث احول العنصر المراد البحث به الى unicode html قبل عملي البحث

وهذا مثال

searchWord=Arb_HTMLEncode("الكلمة")
searchWord=replace(searchWord,"'","''")
sql="select * from table where field like '%" + searchWord + "%'"

HTMLEncode_Array = _
	 Array("8364", "1662", "8218", "402", "8222", "8230", "8224", _
		   "8225", "710", "8240", "1657", "8249", "338", "1670", _
		   "1688", "1672", "1711", "8216", "8217", "8220", "8221", _
		   "8226", "8211", "8212", "1705", "8482", "1681", "8250", _
		   "339", "8204", "8205", "1722", "160", "1548", "162", "163", _
		   "164", "165", "166", "167", "168", "169", "1726", "171", "172", _
		   "173", "174", "175", "176", "177", "178", "179", "180", "181", _
		   "182", "183", "184", "185", "1563", "187", "188", "189", "190", _
		   "1567", "1729", "1569", "1570", "1571", "1572", "1573", "1574", _
		   "1575", "1576", "1577", "1578", "1579", "1580", "1581", "1582", _
		   "1583", "1584", "1585", "1586", "1587", "1588", "1589", "1590", _
		   "215", "1591", "1592", "1593", "1594", "1600", "1601", "1602", _
		   "1603", "224", "1604", "226", "1605", "1606", "1607", "1608", _
		   "231", "232", "233", "234", "235", "1609", "1610", "238", "239", _
		   "1611", "1612", "1613", "1614", "244", "1615", "1616", "247", _
		   "1617", "249", "1618", "251", "252", "8206", "8207", "1746")


function Arb_HTMLEncode(lpStr)
'128 255
'dim HTMLEncode_Array
dim retStr
  retStr=""
  for i=1 to len(lpStr)
	nAsc = Asc(Mid(lpStr, i, 1))
	if nAsc >=128 then
	   retStr=retStr & "" &  HTMLEncode_Array(nAsc -128) &";"
	else
	   retStr=retStr&mid(lpStr,i,1)
	end if   
  next
  Arb_HTMLEncode=retStr
end function

تم تعديل هذه المشاركة بواسطة Mo7eb_Alrasool في 10 أغسطس 2006 في 08:00

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#4

السلام عليكم

احسنت وبارك الله فيك فعلا هذا الجواب الشافى بالنسبة لى تغير الخط الى العربى الان

بس انا واقع فى مشكلة الاسكيول سيرفير الان

هل يوجد امكانية لتغيير قاعدة البيانات بالكامل بتغير نوع التشفير او ضرورى من البرمجة في الموضوع لان قاعدة البيانات عندى تحتوى على اكثر من 70 جدول

#5

السلام عليكم

هل يمكن ان يكون لهذا الكود صلة بعملية التتغير لاني لم استخدم الفانكشن من قبل

CREATE FUNCTION UDFHTMLENCODE(@input sql_variant)
--UDF that emulates HTMLENCODE
RETURNS sql_variant
AS 
BEGIN 
DECLARE @output_variant sql_variant
IF SQL_VARIANT_PROPERTY(@input,'BaseType') IN ('nvarchar', 'nchar')
BEGIN
DECLARE @output1 nvarchar(4000)
SET @output1=CONVERT(nvarchar(4000), @input)
SET @output1=REPLACE(@output1,N'&', N'&')
SET @output1=REPLACE(@output1,N'>', N'>')
SET @output1=REPLACE(@output1,N'<', N'<')
SET @output1=REPLACE(@output1,N'''', N''')
SET @output1=REPLACE(@output1,N'"', N'"')
SET @output_variant=@output1
END
ELSE
BEGIN
DECLARE @output2 varchar(8000)
SET @output2=CONVERT(varchar(8000), @input)
SET @output2=REPLACE(@output2,'&', '&')
SET @output2=REPLACE(@output2,'>', '>')
SET @output2=REPLACE(@output2,'<', '<')
SET @output2=REPLACE(@output2,'''', ''')
SET @output2=REPLACE(@output2,'"', '"')
SET @output_variant=@output2
END
RETURN @output_variant
END

لم اعرف بالتحديد طريقة الاستخدام او اين وضع اسماء الحقول

مصدر الكود هنا

تم تعديل هذه المشاركة بواسطة mystar14 في 11 أغسطس 2006 في 00:14

#6

اخي الكريم هل جربت الكود التالي

create table tablename
( fid int primary key,
fname nvarchar(50) collate arabic_ci_as )

هذا ينشئ جدول حاول ان تضع بيانات عربيه في الحقل fname واخبرني بالنتيجه

اما الكود اللي انته وضهته

فهو يبدل ال ' الى '

اقتباس
SET @output1=REPLACE(@output1,N'''', N''')
SET @output2=REPLACE(@output2,'''', ''')

تم تعديل هذه المشاركة بواسطة Mo7eb_Alrasool في 11 أغسطس 2006 في 03:52

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#7

السلام عليكم

مشكور اخوى الكريم على ردك بس لاتوجد فائدة لان قاعدة البيانات عندي كبيرة وتوجد بها بيانات وحاولت بعدة طرق لكن دون فائدة تذكر

اما بالنسبة لوضع الكود arabic_ci_as ممتاز في حالة خلق قاعدة بيانات جديدة ولكن مشكلتى الاساسية هي ارجاع البيانات الى حالتها الاصلية باللغة العربية

والتى تم تخزينها على هيئة HTMLENcode

مشكور مرة اخرى

السلام عليكم

تم تعديل هذه المشاركة بواسطة mystar14 في 11 أغسطس 2006 في 22:15

#8

السلام عليكم

اخي الكريم النيانات اللي في الفاعدة بال HTML Encode

وبك تحولهم الى احرف عربيه

هل هذا ما تريد؟

عني النص في قاعدة النيانات بابشكل التالي

&;#1593;&;#1585;&;#1576;&;#1610;

وانت بدك تحوله للعربي؟

اقتباس
ولكن مشكلتى الاساسية هي ارجاع البيانات الى حالتها الاصلية باللغة العربية

والتى تم تخزينها على هيئة

هل تقصد تحويل قاعدة البيانات كاملة

او فقط النص المحضر من القاعدة؟

تم تعديل هذه المشاركة بواسطة Mo7eb_Alrasool في 12 أغسطس 2006 في 04:29

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#9

السلام عليكم

اخي الكريم مشكور على تجاوبك معي هذا شكل البيانات الموجود عندي في اكثر من حقل بقاعدة البيانات اضغط هنا حتى يمكنك معرفة شكل البيانات وليس كما وردت في ردك الاخير

الشئ الثاني لا اعرف اذا كانت هناك امكانية لتغيير قاعدة البيانات بالكامل او لا ويكون احسن بالنسبة لى طبعاً

برمجياً اكييد هناك طريقة بس راح تاخذ وقت لان عدد الحقول كبير الغريب في الموضوع انك لو اخذت نسخة من البيانات الموجودة بالملف المرفق ورحت بها على الفيجوال بيسك ووضعتها في مسج بوكس يظهر الخط العربي واضح بشرط تعديل الخط في قائمة الاعدادات الخاصة بالفيجوال بيسك

لا اعرف بالتحديد كيف يمكن الخروج من هذا المازق ان اريد تحويل البيانات من htmlencode الى الخط العربي فهل يمكن ذلك

عموما انا طبقت الفانكشن التى ارسالتها وقمت بارسال النص اليها فرجع الخط بالعربي لكن بشرط ان يكون character set 1252 لان لو كان 1256 اصبح الخط كما ذكرت في الرد الاخير حينها الدالة ترجع نفس الخط الاول وليس عربي

ارجو ان تكون قد فهمت الموضوع اريد تحويل قاعدة البيانات الموجودة بي htmlencode الى العربي

السلام عليكم

تم تعديل هذه المشاركة بواسطة mystar14 في 12 أغسطس 2006 في 17:58

#10

السلام عليكم

للإستفادة

اضغط هنا

كذلك استخدام الامر RebuildM.exe تنفيده عن طريق RUN لتغيير اللغة

لكن الى حد الان دون فائدة بس انا متاكد أن شاء الله ان هذا الرابط يحتوي الكثير بين السطور

سلامااات

#11

السلام عليكم

الى خبراء sql server

لاتوجد طريقة للتحويل من (UTF8 (HTML CHARACTER

الى

UTF16 الذى يساوى codepage 65001 الداعم للغة العربية

هل يمكن اضافة كود جديد الى sql server

تحياتي

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

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