如何在Dart和Flutter上将拉丁语转换为Ibm字符集?

时间:2019-03-29 14:27:53

标签: utf-8 dart flutter char ascii

我的flutter应用程序将用户字符串发送到渡槽,在渡槽中,我使用dart套接字将数据发送到内部服务器。在Flutter Mobile应用中,我使用带有application / json标头的http.get,并使用json.decode解码响应正文。

  var _response = await http.get(Uri.encodeFull("$_socketCon"),
      headers: {'Accept': 'application/json'});
  if (_response.statusCode == 200) {
    var _resBody = await json.decode(_response.body);

在渡槽中,我使用socket.write,并使用String.fromCharCodes(data)将数据从套接字返回到颤动的移动应用程序。

_socket = await Socket.connect('192.168.22.120', 3000);
        _socket.write('$mobileData\r\n');

_reply = new String.fromCharCodes(data);

在Flutter移动应用中,我还使用replaceAll替换了如下所示的字符

_socketData = _socketData.replaceAll(new RegExp(r'Ý'), 'I');
_socketData = _socketData.replaceAll(new RegExp(r'ý'), 'i');
_socketData = _socketData.replaceAll(new RegExp(r'Ð'), 'G');
_socketData = _socketData.replaceAll(new RegExp(r'ð'), 'g');

稍后,我了解到服务器(套接字)使用了一些转换,如下所示。如果flutter移动应用发送带有chr(208)的字符串,则服务器套接字将替换为chr(166)。

数据

sLatin: 
string = 'CHR(208)||CHR(220)||CHR(222)||CHR(221)||CHR(214);


sIbm: 
string = 'CHR(166)||CHR(154)||CHR(158)||CHR(152)||CHR(153)';

mobil to socket
        if cHarf = chr(208) then cHarf := chr(166) // Ğ
        else
        if cHarf = chr(220) then cHarf := chr(154) // Ü
        else
        if cHarf = chr(222) then cHarf := chr(158) // Ş
        ...
        ...

我需要类似的从Flutter到套接字的转换以及从套接字到Flutter的转换。

如何在Dart和Flutter上将拉丁语转换为Ibm字符集?
还是如何在飞镖或颤动中使用类似的字符转换?

更新

我尝试将字符转换为字节,如下所示,但不适合ibm类型。 ibm char(240)将转换为拉丁字符(167)。输出甚至不匹配。

  List<String> letters = [ 'c', 'ç', 'g', 'ğ', 'ı', 'i', 'o', 'ö', 's', 'ş', 'u', 'ü' ];
  for (num i=1; i < 12; i++) {
    var bytes = utf8.encode(letters[i].toString());
    print(bytes) ;
  }

输出:

[195, 167]
[103]
[196, 159]
[196, 177]
[105]
[111]
[195, 182]
[115]
[197, 159]
[117]
[195, 188]

Update-2;

我也找到了这些,但是我不确定如何转换为十六进制或UTF8,如下所示

以下是一些十六进制的字符代码以及它们在UTF-8中的编码方式:

      Ç     ç     Ğ     ğ     İ     ı     Ö     ö     Ş     ş     Ü     ü
Code: 00c7  00e7  011e  011f  0130  0131  00d6  00f6  015e  015f  00dc  00fc
UTF8: c3 87 c3 a7 c4 9e c4 9f c4 b0 c4 b1 c3 96 c3 b6 c5 9e c5 9f c3 9c c3 bc

0 个答案:

没有答案