Flutter ESC-POS Utils 编码土耳其语字符(无效字符问题)

问题描述 投票:0回答:1

我正在开发一个移动应用程序,该应用程序从蓝牙打印机打印发票。所以我将 "esc_pos_utils""bluetooth_ Thermal_printer" 包导入到 pubspec.yaml 文件中。

应用程序可以使用一些土耳其字符(如“çÇ”和“öÖ”)从打印机打印发票,但是当我键入“ıı”、“ğĞ”、“şŞ”等其他字符时,控制台中会抛出异常;

E/flutter (31974): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Invalid argument (string): Contains invalid characters.: "FAALİYET RAPORU"
E/flutter (31974): #0      _UnicodeSubsetEncoder.convert (dart:convert/ascii.dart:85:9)
E/flutter (31974): #1      Latin1Codec.encode (dart:convert/latin1.dart:40:46)
E/flutter (31974): #2      Generator._encode (package:esc_pos_utils/src/generator.dart:77:21)
E/flutter (31974): #3      Generator.text (package:esc_pos_utils/src/generator.dart:354:9)

我在 PosStyles() 小部件中尝试了

codeTable:"CP857"
codeTable:"CP1252"
,但没有成功。

您以前遇到过这种情况吗?

如果您以前遇到过并解决了,您是如何解决的。

flutter dart encode turkish bluetooth-printing
1个回答
0
投票
    bytes += generator.setGlobalCodeTable("CP866");
bytes.addAll(generator.row([
       PosColumn(
         textEncoded: await getEncoded('Автоматизация ресторанов'),
         width: 12,
         styles: const PosStyles(align: PosAlign.center),
       )
     ]));
Future<Uint8List> getEncoded(String text) async {
     final encoded = await CharsetConverter.encode("CP866", text);
     return encoded;
   }

字符集转换器:^2.1.2

使用此包创建您自己的代码表

© www.soinside.com 2019 - 2024. All rights reserved.