اذهب إلى المحتوى

السؤال

نشر (معدل)

تحيه طيبه للجميع 

لدي مشروع فلاتر مرتبط بقاعدة بيانات mysql  

أحاول عرض البيانات للمستخدمين التي تم تخزينها مسبقا على قاعدة البيانات ولكن المشكلة ان الكلمات العربية تظهر على شكل استفهام ؟؟؟؟؟ بشكل هذا

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

الكود المستعمل كالتالي:

 _fetchData() async {
    var response = await http.get(
        Uri.parse('http://localhost/HRMS.php'),
        headers: {"Accept": "application/json"});

    setState(() {
      var convertDataToJson = json.decode(response.body);
      data = convertDataToJson['result'];
      txtName = data[0]['Name'];


log(txtName);
    });
  }

 

مع العلم انني قمت بستعمل الطريقة التالية ولكن بدون فأئده :

 String body = utf8.decode(response.bodyBytes);
      print(body);

 

بنسبة الى كود PHP

<?php

header('access-control-allow-origin: *');
header('Access-Control-Allow-Headers: *');

require_once 'connt.php';


$sql="SELECT * FROM employees  
 INNER JOIN tEmployeeNAME   ON employees.IdEmployeeNAME  = tEmployeeNAME .IdEmployeeNAME 

$stmt = $con->prepare($sql); 

$stmt->execute();

$result = $stmt->get_result();


$array = array();

while ($row  = mysqli_fetch_assoc($result))
{
	$array[] = $row;
}

echo ($result) ?
json_encode(array("code" => 1, "result"=>$array)) :
json_encode(array("code" => 0, "message"=>"Data not found !"));


?>

 

شكرا لكم

تم التعديل في بواسطة مروان مروان3

Recommended Posts

  • 1
نشر
بتاريخ 16 دقائق مضت قال مروان مروان3:

مرحبا اخي الكريم

نعم قمت بتجربة 

utf8mb4_unicode_ci

 وايضا 

utf8_general_ci 

والاثنين نفس المشكله 

مع العلم اني استعمل فلاتر ويب 

هل يمكنك تحويل ترميز الريسبونس إلى utf8 عن طريق 

String body = jsonDecodeUtf8(response.bodyBytes);

أو يمكنك إضافة الدالة utf8.decode  إلى response.bodyBytes كما في الطريقة التالية

json.decode(utf8.decode(response.bodyBytes))

إذا لم ينجح ذلك تأكد من شكل الريسبونس الي راجع من api و يكون بالعربية. 

 

  • 0
نشر
بتاريخ 2 دقائق مضت قال بلال زيادة:

هل ترميز الحقول في قاعدة البيانات utf8mb4_unicode_ci ؟ 

مرحبا اخي الكريم

نعم قمت بتجربة 

utf8mb4_unicode_ci

 وايضا 

utf8_general_ci 

والاثنين نفس المشكله 

مع العلم اني استعمل فلاتر ويب 

  • 0
نشر
بتاريخ On 1/21/2022 at 02:49 قال Wael Aljamal:

حاول استخدام التعليمة التالية في بداية ملف PHP


ini_set('default_charset', 'utf-8');

أو قم بتعديل ملف php.ini في ملف السيرفر لجعل ترميز النصوص utf8

عدل السطر:


default_charset = "utf-8"

وأعد تشغيل المخدم لديك.

اهلا اخي الكريم

شكرا لك اخي نعم الحل ناجح تم حل المشكلة

للفائدة الكود كامل اصبح كالتالي:

 

<?php



require_once 'con.php';


$sql="SELECT * FROM Users";

$con -> set_charset("utf8");

$stmt = $con->prepare($sql); 


$stmt->execute();

$result = $stmt->get_result();


$array = array();

while ($row  = mysqli_fetch_assoc($result))
{
	$array[] = $row;
}


echo ($result) ?
json_encode(array("code" => 1, "result"=>$array)) :
json_encode(array("code" => 0, "message"=>"Data not found !"));


?>

 

بتاريخ On 1/20/2022 at 23:46 قال بلال زيادة:

هل يمكنك تحويل ترميز الريسبونس إلى utf8 عن طريق 


String body = jsonDecodeUtf8(response.bodyBytes);

أو يمكنك إضافة الدالة utf8.decode  إلى response.bodyBytes كما في الطريقة التالية


json.decode(utf8.decode(response.bodyBytes))

إذا لم ينجح ذلك تأكد من شكل الريسبونس الي راجع من api و يكون بالعربية. 

 

كل الشكر لك اخي الكريم تم حل المشكلة وارفق الحل في المشاركة للفائدة

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...