أواجه مشكلة في فك شفرة QR من ملف PDF هذا (في الصفحة 27).
يبدو أن Umlaut في السطر الأخير لم يتم فك تشفيره بشكل صحيح. لقطة شاشة من العرض التوضيحي المباشر:
يصبح نص السطر الأخير ... "für Gartenarbeit und Entsorgung" ...
يمكنني فك شفرة QR Code على ما يرام في Java باستخدام ZXing.
إذا قمت بتعيين تلميح فك التشفير CHARACTER_SET على "ISO-8859-1" ، فإن النتيجة التي تم فك ترميزها هي نفسها تمامًا كما هو موضح في لقطة الشاشة ، لذلك أظن أنه في مكان ما يتم افتراض ISO-8859-1 في InstaScan.
إليك رمز الاستجابة السريعة الذي استخدمته لتسهيل النسخ / اللصق:
هل هناك طريقة لتحديد الترميز المراد استخدامه ، أم أن هذا خطأ؟
في PHP ، استخدم: utf8_decode
يحول Thsi السلسلة التي تحتوي على أحرف ISO-8859-1 مشفرة باستخدام UTF-8 إلى ISO-8859-1 بايت واحد
في جافا سكريبت ، ما يلي إلى نفسه:
var decoded_content = self.utf8_decode (محتوى) ،
utf8_decode: الوظيفة (str_data) {
// يحول سلسلة ذات أحرف ISO-8859-1 مشفرة باستخدام UTF-8 إلى ISO-8859-1 بايت واحد
سلسلة var = "" ، i = 0 ، c = c1 = c2 = 0 ؛
while ( i < str_data.length ) {
c = str_data.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
} else if((c > 191) && (c < 224)) {
c2 = str_data.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
} else {
c2 = str_data.charCodeAt(i+1);
c3 = str_data.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
وجود نفس المشكلة. يتم فك الشفرات السيريلية إلى رطانة:
ÐаннÑй кÑпон ÑгенеÑиÑован
تواجه نفس المشكلات مع اللغة الكورية
وجود نفس المشكلة. يتم فك الشفرات السيريلية إلى رطانة:
�анн�й к�пон �гене�и�ован
تكمن المشكلة في هذا الجزء https://github.com/schmich/instascan/blob/b0f9519f2dd2a6661e67066d6ed678e621dd5ce2/src/scanner.js#L101 لكنني لم أكتشف كيفية إصلاحها بعد.
alekciy شكرًا لك على النصيحة ، لقد أضفت وحدة فك ترميز utf8 في هذا السطر وقد
على الرغم من أن هذا قد لا يتم دمجه. في حالة احتياج شخص ما إلى هذا الإصلاح ، يمكنك استنساخ الريبو وتطبيق الإصلاح بنفسك وإعادة إنشاء الحزمة باستخدام:
npm install
./node_modules/.bin/gulp release
و instascan.min.js
سيظهر في dist
الدليل.
alekciy شكرًا لك على النصيحة ، لقد أضفت وحدة فك ترميز utf8 في هذا السطر وقد
ماذا لو cp1251؟ على سبيل المثال ، المدفوعات وفقًا لتنسيق GOST R 56042-2014 ST00011. من الناحية المثالية ، قم بإضافة كاشف الترميز.
alekciy لا أعتقد أن هناك طريقة موثوقة لاكتشاف ترميز النص ، خاصةً عندما تكون ترميز CP. قد يكون من الأفضل إضافة معلمة ترميز إلى فئة الماسح الضوئي.