لدي مشكله في موقع انشاء Qrcode يدعم اللغه العربيه

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

المفترض ان يتم انشاء Qr code يحتوي علي جميع بيانات الرحله البيانات باللغه العربيه لذالك تحدث مشكله

Could not encode content to ISO-8859-1

هذه هي المشكله الاولي

ثاني مشكله هي عندما البيانات تكون كبيره جدا واستطعت انشاء Qr code للاسف يكون معقد جدا ولا يتم قراتها ابدا مهما حاولت

اسم الباكج : composer require simplesoftwareio/simple-qrcode

الربط اللذي اود ان اجعل له qrCode هكذا :

كود الخاص بي

  public function playOrder(Request $request)

  {




    $x = $request->data;

    $dataarray = json_decode($x, true);

    $qrQode = QrCode::size(100)->generate("https://wealthest22.com/quiz_app_taha/public/s/" . $x);

    return view('index', ["data" => $dataarray, "qrQode" => $qrQode]);

  }

التقنيات

laravel , php ,html,css,js


وعليكم السلام , الحل بسيط

بنسبه للمشكله الاولي وهي اللغه العربيه يجب اولا عمل json_decode للبيانات

قبل انشاء Qr code

بهذه الطريقه

     $x = $request->data;
     $dataarray = json_decode($x, true);

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

اولا سنقسم الرابط الي جزئين الرابط الاصلي وهو https://wealthest22.com/qui...

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

وسيتم انشاء جدول يحتوي علي حقلين بهذه الطريقه

 public function up()
    {
        Schema::create('short_links', function (Blueprint $table) {
            $table->id();
            $table->longText('long_url');
            $table->string('code')->unique();
            $table->timestamps();
        });
    }

حقل long_url يمثل الرابط بالكامل بجميع بياناته

حقل ال code يمثل قيمه لا يمكن تكرارها

ثما سيتم انشاء model خاص بالجدول بهذه الطريقه

class ShortLink extends Model
{
    use HasFactory;
    protected $fillable = ['long_url', 'code'];
}

ثما سيتم تغير الداله الخاص بك لتصبح بهذه الشكل :

    public function playOrder(Request $request)
    {


        $input['long_url'] = "https://wealthest22.com/quiz_app_taha/public/play/order?data=" . ($request->data); // The long URL from your form or API call
        $input['code'] = str::random(6); // Generate a random string for the short code


        $shortLink = ShortLink::create($input);


        $x = $request->data;
        $dataarray = json_decode($x, true);
        $qrQode = QrCode::size(100)->generate("https://wealthest22.com/quiz_app_taha/public/s/" . $shortLink->code);
        return view('index', ["data" => $dataarray, "qrQode" => $qrQode]);
    }

عند بداية فتح الصفحه سيتم تخزين الرابط اللذي يحتوي علي بيانات كبيره وثما سيتم انشاء كود عشوائي لا يتكرر لهذه رابط

و عند انشاء Qrcode سيتم انشاءه للرمز اللذي لايتكرر من رابط لاخر بلاضافه الي رابط الموقع الاساسي

ولان عند قراءة Qr code سيتم اظهار الرابط بهذه الشكل :

"https://wealthest22.com/quiz_app_taha/public/s/wwwwwww"

اعتبارا ان wwwww هو الكود اللذي لايتكرر وعند مسح QrCode سيظهر هذه الرابط وعند الدخول اليه سننشئ داله بسيطه تعيد التوجيه الي الرابط الاساسي بهذه الطريقه

    public function shortenLinkRedirect($code)
    {
        $find = ShortLink::where('code', $code)->first();


        if ($find) {
            return redirect($find->long_url);
        }


        return abort(404);
    }

لا تنسي انشاء route الخاص به بهذه الطريقه

Route::get('/s/{code}', [NameController::class, 'shortenLinkRedirect'])->name('s');

شكرا فكرة انشاء روابط مختصره ذكيه جد و حلت لي المشكله