مشكلة اللغة العربية فى قارئة المسارات react native

السلام عليكم اقوم بتصدير قاعدة البيانات من خلال مكتبة react-native-document-picker

الشكلة عند قرائة المسار اذا اختار المستخدم ملف عربى يقوم بحفظ فيه يظهر فى المسار بشكل غير مفهومم

كيف يمكننى اصلاح هذا

const uri ='content://com.android.externalstorage.documents/tree/primary%3ADocuments';

من الممكن الإعتماد على دالة decodeURIComponent في جافاسكريبت لفك تشفير المكونات المؤلفة للمسار، أي كالتالي:

const uri = 'content://com.android.externalstorage.documents/tree/primary%3ADocuments';

const decodedURI = decodeURIComponent(uri);
console.log(decodedURI);

ومن الأفضل حفظ المسار بشكله المشفر، ثم تحويله متى شئت.

شكرا لك اخى تم الحل

كيف يمكننى الحفظ فى هذا المسار استخدم مكتبة

react-native-fs

ولاكن لايممكن للمكتبة الدخول الى هذا المسار

يجب ان تضمن ان الصلاحيات كلها موجودة من أجل الحفظ في المسار المطلوب حرب ان تضيف هذه الصلاحيات في ملف AndroidManifest.xml الموجود في العادة في المسار android/app/src/main/

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.appName">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <application
    ...
      android:requestLegacyExternalStorage="true"
    ...
    >
    </application>
</manifest>

و ايضا داخل ميثود اللي تسوي حفظ للملف حاول تضيف هذا الكود الذي يسمح بالتأكد اذا كان هناك صلاحيات للحفظ او لا

try {
      const granted = await PermissionsAndroid.requestMultiple([
        PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
        PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
      ]);
    } catch (err) {
      console.warn(err);
    }
    const readGranted = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE); 
    const writeGranted = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE);
    if(!readGranted || !writeGranted) {
      console.log('Read and write permissions have not been granted');
      return;
    }

شكرا لك تم الحل

العفو أخي