Сам код QR не имеет фиксированной кодировки.Вы можете попытаться установить ECI, используя
LL.Core.LlXSetParameter(LlExtensionType.Barcode, "QRCode", "ECI", "0000026");
В зависимости от типа сканера, это может помочь или нет.Чтобы UTF-8 кодировал содержимое, вы должны передавать его побайтово - это позволяет обойти любые проблемы между передачей и рендерингом.Функция расширения конструктора, которая обрабатывает это задание, будет подключена следующим образом:
Код оценки будет выглядеть следующим образом:
private void designerFunction1_EvaluateFunction(object sender, EvaluateFunctionEventArgs e)
{
string input = e.Parameter1.ToString();
var utf8 = Encoding.UTF8;
byte[] utfBytes = utf8.GetBytes(input);
StringBuilder barcodeContent = new StringBuilder();
foreach (byte b in utfBytes)
{
barcodeContent.AppendFormat("~d{0:000}", b);
}
e.ResultValue = barcodeContent.ToString();
e.ResultType = LlParamType.String;
}
Затем используйте EncodeAsUTF8 для содержимого вашего штрих-кода, и все будет в порядке.