gpt4 book ai didi

file - Dart语言:编码(与HttpRequest和http_server包有关)

转载 作者:行者123 更新时间:2023-12-03 04:06:10 25 4
gpt4 key购买 nike

我正在创建一个文件,并在其上写入一个字符串,其编码设置为LATIN1。但是,完成的文件设置了不同的编码(在Linux上,“file -bi”返回的us-ascii或utf-8,取决于我用来获取String的方法)。

以下是创建方法:

new File("/home/username/dart_test/file.xml").create(recursive: true).then((file) {
file.writeAsString(_methodReturnsAString(), mode: FileMode.WRITE, encoding: LATIN1);
});

有什么想法可能有问题吗?

编辑(与答案相关):

上述方法没有问题。问题出在“writeAsString”内部提供给方法的数据。该数据来自未正确处理的HttpRequest(实际上,将编码设置为ISO-8859-1引起了问题)。

最佳答案

问题所描述的方法没有问题。实际上,问题出在未正确设置的http请求正文处理程序中。

因此,我在回答自己的问题,以帮助其他遇到相同问题的人。

以下是我的请求处理程序(来自http_server包):

    HttpBodyHandler.processRequest(request/*, defaultEncoding: Encoding.getByName("ISO-8859-1")*/).then((body) {
// Do something with body.
}, onError: _printError);

看看注释掉的“defaultEncoding”。这就是原因。如果您不处理请求中的任何文件( Blob ),我认为您无法设置它。我不知道在处理某些String时是否应该设置它( ,如果有人可以使用此信息完成此答案,我将不胜感激)。

关于file - Dart语言:编码(与HttpRequest和http_server包有关),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27133682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com