Π£ ΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΎΠΉ QR-ΠΊΠΎΠ΄Π° ΠΈΠ· ΡΡΠΎΠ³ΠΎ PDF-ΡΠ°ΠΉΠ»Π° (Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ 27).
ΠΠ°ΠΆΠ΅ΡΡΡ, ΡΠΌΠ»Π°ΡΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠ΅ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π΅ΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π‘ΠΊΡΠΈΠ½ΡΠΎΡ ΠΈΠ· ΠΆΠΈΠ²ΠΎΠΉ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ:
ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΈΡΠ°ΡΡ ... "fΓΌr Gartenarbeit und Entsorgung" ...
Π― ΠΌΠΎΠ³Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ QR-ΠΊΠΎΠ΄ Π½Π° Java Ρ ΠΏΠΎΠΌΠΎΡΡΡ ZXing.
ΠΡΠ»ΠΈ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ CHARACTER_SET Π½Π° Β«ISO-8859-1Β», ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ Π³Π΄Π΅-ΡΠΎ Π² InstaScan ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ISO-8859-1.
ΠΠΎΡ QR-ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ / Π²ΡΡΠ°Π²ΠΊΠΈ:
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΠΊΠ°Π·Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΠΈΠ»ΠΈ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°?
Π PHP ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅: utf8_decode
Thsi ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ISO-8859-1 Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8 Π² ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠΎΠ²ΡΠ΅ ISO-8859-1.
Π javascript ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΊ ΡΠΎΠΌΡ ΠΆΠ΅:
var decoded_content = self.utf8_decode (ΠΊΠΎΠ½ΡΠ΅Π½Ρ);
utf8_decode: function (str_data) {
// ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅Ρ ΡΡΡΠΎΠΊΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ISO-8859-1 Π² ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ UTF-8 Π² ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡΠ½ΡΡ ISO-8859-1
var string = "", 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;
ΠΠΌΠ΅Ρ ΡΡ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠΈΡΠΈΠ»Π»ΠΈΡΠ° ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΡΠ°Π±Π°ΡΡΠΈΠ½Ρ:
ΓΒΓΒ°ΓΒ½ΓΒ½ΓΒΓΒΉ ΓΒΊΓΒΓΒΏΓΒΎΓΒ½ ΓΒΓΒ³ΓΒ΅ΓΒ½ΓΒ΅ΓΒΓΒΈΓΒΓΒΎΓΒ²ΓΒ°ΓΒ½
ΡΠ°ΠΊΠΈΠ΅ ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΊΠΎΡΠ΅ΠΉΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ
Having the same issue. Cyrillics are decoded into gibberish:
ΓοΏ½ΓΒ°ΓΒ½ΓΒ½ΓοΏ½ΓΒΉ ΓΒΊΓοΏ½ΓΒΏΓΒΎΓΒ½ ΓοΏ½ΓΒ³ΓΒ΅ΓΒ½ΓΒ΅ΓοΏ½ΓΒΈΓοΏ½ΓΒΎΓΒ²ΓΒ°ΓΒ½
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΡΠΎΠΌ ΠΊΡΡΠΊΠ΅ 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 Thank you for the tip, I have added utf8 decoder in that line and it worked.
Π Π΅ΡΠ»ΠΈ cp1251? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ»Π°ΡΠ΅ΠΆΠΊΠΈ ΠΏΠΎ ΠΠΠ‘Π’ Π 56042-2014 ΡΠΎΡΠΌΠ°Ρ ST00011. Π ΠΈΠ΄Π΅Π°Π»Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±Ρ Π΄Π΅ΡΠ΅ΠΊΡΠΎΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ.
@alekciy Π― Π½Π΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ Π΅ΡΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ ΡΠ΅ΠΊΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ CP. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅, Π»ΡΡΡΠ΅ Π±ΡΠ»ΠΎ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ Π² ΠΊΠ»Π°ΡΡ Scanner.