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

مشكلة الترميز في Asp.net عند إرسال نص موجود ضمن Textbox إلى صفحة ما

بدأه esa2008 في 12 مايو 2008 · 3 رد · 1,603 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

post-159433-1210607690_thumb.jpg

حيث 1 قبل الضغط و2 بعد الضغط

مع العلم اني استخدم قواعد بيانات من نوع SQL Server 2005

أما باقي الموقع لا توجد مشاكل

ارجو المساعده ولكم جزيل الشكر والتقدير:

وهذا هو كود مربع النص :

<td>

<asp:TextBox ID="txtSearch" OnTextChanged="btnQuickSearch_Click" runat="server" ></asp:TextBox>

<asp:Button ID="btnQuickSearch" OnClick="btnQuickSearch_Click" runat="server"

Text=" بحث (*)" />

</td>

وهذا الكود الخاص بأمر البحث

Protected Sub btnQuickSearch_Click(ByVal sender As Object, ByVal e As System.EventArgs)

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

sSearchStr = txtSearch.Text

sDbWhere = ""

If sSearchStr <> "" Then

If sSearchType <> "" Then

While InStr(sSearchStr, " ") > 0

sSearchStr = Replace(sSearchStr, " ", " ")

End While

Dim sArrSearchStr() As String = Split(sSearchStr, " ")

Dim sKeyword As String

For Each sKeyword In sArrSearchStr

sDbWhere &= "[ArticalTitle] LIKE '%" & Trim(sKeyword) & "%' OR "

sDbWhere &= "[LongDescip] LIKE '%" & Trim(sKeyword) & "%' OR "

Next

Else

sDbWhere &= "[ArticalTitle] LIKE '%" & Trim(sSearchStr) & "%' OR "

sDbWhere &= "[LongDescip] LIKE '%" & Trim(sSearchStr) & "%' OR "

End If

If Right(sDbWhere, 4) = " OR " Then sDbWhere = Left(sDbWhere, Len(sDbWhere) - 4)

If Right(sDbWhere, 5) = " AND " Then sDbWhere = Left(sDbWhere, Len(sDbWhere) - 5)

End If

sSql = "Select * From Articals where (" & sDbWhere & ") AND (LangID=1)"

SqlDataSource2.SelectCommand = sSql

End Sub

تم تعديل هذه المشاركة بواسطة esa2008 في 12 مايو 2008 في 19:15

#2

لدي نفس المشكلة إلا انه ما تطلع علامة استفهام تطلع الكلمات باللغة العربية طبيعي ...

لكن في البحث تطلع النتيجه انه ما فيه سجلات مع انها موجودة فعلاً في القاعدة

وعندما تكون البيانات بالانجليزية طبيعي تطلع النتيجة

يرجى المساعدة

string usert = txtuser.Text;
        string sql = "select * from users where user_name ='" +usert+ "'";
        conn.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        cmd.CommandText = sql;
        cmd.CommandType = CommandType.Text;
        SqlDataReader rd = cmd.ExecuteReader();
        int i = 0;
        lblres.Text = "";
        while (rd.Read())
        {
            lblres.Text= rd["user_name"].ToString();
            i++;

         }
#3

السلام عليكم

هذه المشكلة لها العديد من الاسباب و العديد من الحلول ...

أولا ... تسجيل بيانات بقاعدة البيانات من خلال صفحة ويب يجب أن تراعي أمرين

1- يجب أن يكون نوع الحقل في قاعدة البيانات NVarchar

2- عندما تقوم بادخال جملة ما وفيها تص يجب ان تلحق التص بحرف الـ، N

مثال ... select * frmo users where username = N'mohammad'

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

هذا أحد الحلول ...

الحل الثاني أن الصفحة نفسها تحتاج إلى ان يصبح نسقها utf8

ولذلك اذهب إلى ملف الصفحة من جهاز الكمبيوتر و من ثم افتح الصفحة على الـ notepad

و من ثم قم بعمل save as واحفظها على نفس الصفحة و لكن في الأسف ستجد خيار

لو كان ANSI حوله إلى UTF8

إن شاء الله سيكون الحل الأول هو الأنسب

1

ارحب بكم في مدونتي الشخصية

M2000 Developer

#4

مشكور

وتسلم على التوضيح

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…