Skip to content

Commit 012dee3

Browse files
committed
Bugfix in QR code version calculation if ECI mode is used
1 parent 8ba7099 commit 012dee3

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

QRCoder/QRCodeGenerator.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ public static QRCodeData GenerateQrCode(string plainText, ECCLevel eccLevel, boo
129129
int version = requestedVersion;
130130
if (version == -1)
131131
{
132-
version = GetVersion(dataInputLength, encoding, eccLevel);
132+
version = GetVersion(dataInputLength+(eciMode != EciMode.Default?2:0), encoding, eccLevel);
133133
}
134134

135135
string modeIndicator = String.Empty;
@@ -1002,12 +1002,12 @@ private static int GetCountIndicatorLength(int version, EncodingMode encMode)
10021002

10031003
private static int GetDataLength(EncodingMode encoding, string plainText, string codedText, bool forceUtf8)
10041004
{
1005-
return forceUtf8 || IsUtf8(encoding, plainText) ? (codedText.Length / 8) : plainText.Length;
1005+
return forceUtf8 || IsUtf8(encoding, plainText, forceUtf8) ? (codedText.Length / 8) : plainText.Length;
10061006
}
10071007

1008-
private static bool IsUtf8(EncodingMode encoding, string plainText)
1008+
private static bool IsUtf8(EncodingMode encoding, string plainText, bool forceUtf8)
10091009
{
1010-
return (encoding == EncodingMode.Byte && !IsValidISO(plainText));
1010+
return (encoding == EncodingMode.Byte && (!IsValidISO(plainText) || forceUtf8));
10111011
}
10121012

10131013
private static bool IsValidISO(string input)

0 commit comments

Comments
 (0)