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

عند ادراج نص عربي في Mysql يظهر مكانه علامات (؟)

بدأه rohaili في 29 يونيو 2009 · 7 رد · 1,754 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

السلام عليكــم ورحمـة الله وبركاتــه ،،

عند ادراج نص عربي مباشرة في mysql server gui tool باستخدام الامر التالي فان النص يدرج بشكل صحيح .


VALUES ('789', 'عربي');
INSERT INTO st (id, name)

أما عند استخدام الامر التالي من من داخل شيفرة جافا فان النص يظهر مكانه علامات استفهام (؟)


"VALUES ('123456', 'عربي')";
ps = conn.prepareStatement(query);
String query = "INSERT INTO st (id, name)" +

ملاحظة : الامر السابق موجود داخل فئة static ويتم استدعائه من servlet وقد أضفت في هذا ال servlet الامران التاليان :


response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");

لكن دون جدوى .

ملاحظة : الجدول من نوع innodb وترميز الجدول والعمودان هو utf8-general-ci أو utf8-unicode-ci

300_130.gif

#2
conn = DriverManager.getConnection("jdbc:mysql://localhost/db_1?useUnicode=true&characterEncoding=utf8&user=root&password=");

إن شاء الله يعمل معك

بالتوفيق

تم تعديل هذه المشاركة بواسطة malek_sa في 29 يونيو 2009 في 08:59

SCJP 5.0

#3

صحيح كلام الأخ malek_sa

كل الموضوع يكمن في هذا الجزء من الجملة

useUnicode=true&characterEncoding=utf8

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4

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

السلام عليكــم ورحمـة الله وبركاتــه ،،

جزاكم الله خيرا ، لكن المشكلة أن عنوان القاعدة موجود في ملف ال context التالي :

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/sdu">
	<Resource name="jdbc/sdu" auth="container"
		maxActive="100" maxIdle="30" maxWait="10000"
		username="root" password="a"
		driverClassName="com.mysql.jdbc.Driver"
		url="jdbc:mysql://localhost:3306/sdu?autoReconnect=true"
		logAbandoned="true" removeAbandoned="true"
		removeAbandonedTimeout="60" type="javax.sql.DataSource" />
</Context>

والاتصال يتم عن طريق الفئة التالية :

package sdu;

import java.sql.*;
import javax.sql.DataSource;
import javax.naming.InitialContext;

public class connectionpool {

	private static connectionpool pool = null;
	private static DataSource datasource = null;

	private connectionpool(){

		try{
			InitialContext ic = new InitialContext();
			datasource = (DataSource) ic.lookup("java:/comp/env/jdbc/sdu");
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}

	public static connectionpool getinstance(){
		if (pool == null)
			pool = new connectionpool();
		return pool;
	}

	public Connection getconnection(){
		try{
			return datasource.getConnection();
		}
		catch (SQLException s){
			s.printStackTrace();
			return null;
		}
	}

	public void freeconnection (Connection c){
		try{
			c.close();
		}
		catch (SQLException s){
			s.printStackTrace();
		}
	}
}

وقد حاولت التالي :

1 - اضافة السطر التالي الى نهاية العنوان ولكن بدون جدوى .

useUnicode=true&characterEncoding=utf8

2 - اضفت

useUnicode="true" و characterEncoding="utf8" لوحدها مثل username وايضا بدون جدوى .

مع العلم أن التطبيق هو web application .

وجزاكم الله خيرا .

300_130.gif

#5

url الخاصة بك هي كالتالي

jdbc:mysql://localhost:3306/sdu?autoReconnect=true

ستصبح

jdbc:mysql://localhost:3306/sdu?autoReconnect=true&useUnicode=true&characterEncoding=utf8

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

جزاك الله خيرا أخي علاء الصالحي ، قد جربت هذا الحل فلم ينجح .

300_130.gif

#7
response.setContentType("text/html;charset=UTF-8");

ضعها قبل أن تقوم بكتابة أي سطر في الـ doGet or doPost

هذه المرة إن شاء الله تنجح

SCJP 5.0

#8

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

السلام عليكــم ورحمـة الله وبركاتــه ،،

جزاكم الله خيرا على ردودكم .

وجدت الحل وهو في خطوات اعداد وتهيئة mysql حيث يجب اختيار unicode كما في الصورة التالية :

post-63809-1246683408_thumb.jpg

وقد أضفت شرحا كامبلا لخطوات التهيئة والاعداد في منتدى mysql وهذا الرابط :

/index.php?showtopic=198981

بالتوفيق .

300_130.gif

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