flutter 当文件添加到Dart中的ZIP时,卢比符号更改为¹

xa9qqrwz  于 2023-03-09  发布在  Flutter
关注(0)|答案(1)|浏览(108)
import 'package:flutter/material.dart';
import 'dart:html' as html;
import 'package:archive/archive_io.dart' as webarc;

void writeEssay() {

  String contentString = "Essay on Rupee: ₹";

  webarc.ArchiveFile file = webarc.ArchiveFile.stream(
    "Rupee Essay.txt",
    contentString.length,
    webarc.InputStream(contentString.codeUnits),
  );

  // Add file in archive
  final webarc.Archive archive = webarc.Archive();
  archive.addFile(file);

  final webarc.OutputStream outputStream = webarc.OutputStream(
    byteOrder: webarc.LITTLE_ENDIAN,
  );

  // Encode file into Zip file
  final webarc.ZipEncoder encoder = webarc.ZipEncoder();

  final List<int>? bytes = encoder.encode(archive,
      level: webarc.Deflate.BEST_COMPRESSION, output: outputStream);

  // Download the Zip file.
  final html.Blob blob = html.Blob([bytes]);
  final String url = html.Url.createObjectUrlFromBlob(blob);
  final html.AnchorElement anchor =
      html.document.createElement('a') as html.AnchorElement
        ..href = url
        ..style.display = 'none'
        ..download = "Essay.zip";
  html.document.body!.children.add(anchor);

  // download
  anchor.click();
}

我创建. txt文件,并在其中我写卢比符号.
但当我使用Archive package(https://pub.dev/packages/archive)将此txt文件添加到ZIP文件中并在flutter web中下载ZIP文件时,卢比符号更改为¹。
如果我从flutter web下载. txt,它工作正常。当在zip中添加此. txt文件并下载zip文件时出现问题。
存档工作完美,但它只改变了我的txt文件内容to ¹
如何解决这个问题,并保持,因为它是,在ZIP文件?
我也尝试写卢比符号与Flutter统一码,但问题是相同的。
flutterdart-zipdart-archivezip-encodingzip-encoder

ajsxfq5m

ajsxfq5m1#

import 'dart:convert' show utf8;

void writeEssay() {

    String contentString = "Essay on Rupee: ₹";

    // Encode your content into utf8 and then add to archive

    final List<int> encoded = utf8.encode(contentString);

    webarc.ArchiveFile file = webarc.ArchiveFile.stream(
       "Rupee Essay.txt",
       encoded.length,
       webarc.InputStream(encoded),
    );

    ........
}

不要直接使用字符串内容添加到zip文件中。
首先将内容字符串编码为UTF-8,然后将编码后的List添加到zip中。

相关问题