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

مشكلة Request.querystring مع اللغة العربية

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

عند محاولة قراءة قيمة مفتاح من Query String قيمته عبارة عن كلمة باللغة العربية فإن النتيجة هي حروف غير مفهومة.

مثلاً ال URL هو كما يلي:

http://localhost:4404/WebSite1/Default.aspx?ArabicMsg=مرحبا

وكود ASP لقراءة قيمة المفتاح Arabicmsg هو:

	Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		Dim ArabicMsg As String = Request.QueryString("ArabicMsg")
		Literal1.Text = ArabicMsg
	End Sub

النتيجة هي إشارات استفهام.

علماً أنه لامشكلة في ظهور اللغة العربية في بقية الصفحة. وأنه في بداية صفحة aspx مكتوب مايلي:

<%@ Page Language="VB" Codepage="1256" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%  Response.Charset = "windows-1256"%>

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#3

عندما يكون ى Url

عربى انا شخصيا استخدم خاصيه MapURL

ممكن تجربها

Web Development

Mohamed T.Amar

Asp.net , Ajex , MSSQL , MySQL , VB.Net,Java, Xml,DomHtml

m216tt@yahoo.com

#4

الأخ System Down:

ما هو التغيير الذي تقصده للملف web.config؟

الأخ محمد216: هل يمكن إعطاء مثال على MapURL

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#5

أخي الكريم المشكلة أنه أنت تكتب قيمة QueryString يدوياً ولهذا السبب قد يكون التطبيق على المخدم لايفهم الترميز الذي كتب به قيمة QueryString

الحل هو جعل التطبيق يولد قيم QueryString أي كما في المثال التالي:

قم بانشاء صفحة ويب جديدة غير الصفحة السابقة وفي منهج تحميل الصفحة Page_Load اكتب الشيفرة التالية

Response.Redirect("~/Default.aspx?ArabicMsg=مرحبا")

ومن ثم قم بعرض الصفحة جديدة سوف تلاحظ أنها سوف تنقل المتصفح الى الصفحة القديمة وستظهر كلمة مرحباً بشكل صحيح .

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#6

شكراً لك sufian2020

جربت طريقتك فتحولت ال url في سطر العنوان إلى:

http://localhost:1567/WebSite1/Default.aspx?ArabicMsg=%d9%85%d8%b1%d8%ad%d8%a8%d8%a7

وظهرت كلمة "مرحبا" بشكل صحيح في المتصفح.

ولكن هذا لايحل المشكلة، فأنا أريد أن تظهر الكلمة بشكلها الصحيح في URL وفي الكود.

علماً أنني كنت قادراً على تحقيق ذلك باستخدام ASP 3.0 بدون أية مشاكل.

بالمناسبة، وجدت الخاصية التالية:

Request.ContentEncoding

وأعتقد أن الحل قد يكون بها، فهل هنالك من استخدم هذه الخاصية سابقاً؟

تم تعديل هذه المشاركة بواسطة محمد حمود في 12 أكتوبر 2008 في 16:58

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#7

الحل هو بتعديل ملف web.config بإضافة القسم التالي تحت system web:

		<globalization 
   requestEncoding="windows-1256"
   responseEncoding="windows-1256"/>

محمد حمود

ماجستير تقنية المعلومات

بكالوريوس هندسة مدنية

محترف إدارة مشاريع (PMP)

مهندس جودة البرمجيات (CSQE)

مبرمج معتمد من مايكروسوفت (MCP)

متخصص في نظم المعلومات الجغرافية GIS

mohamed.hammod(at)gmail.com

www.ShapeViewer.com

#8

كلام محمد محمود صحيح

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

escape(request.querystring)

IBF

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