当前位置: 首页 > 知识库问答 >
问题:

mod导入时UTF-8流无效

赏光霁
2023-03-14

如何使用helper1中的代码。rs位于main中。rs

// main.rs
mod lib;
use lib::lib_function;
use lib::public_library;

mod module_a;
mod module_b;
use module_a::{helper1::helper1_function, mod_a_function};
use module_b::{helper2, helper3, mod_b_function};

fn main() {
    println!("Hello, world from main!");
    lib_function();
    public_library::public_library_mod_function();

    helper1_function();
    mod_a_function();

    helper2::helper2_function();
    helper3::helper3_function();
    mod_b_function();
}

// module_b/mod.rs
pub mod helper2;
pub mod helper3;

pub fn mod_a_function() {
    println!("Printing from module_b/mod.rs");
}


// module_b/helper2.rs
pub fn helper2_function() {
    println!("Hello from Helper 2!!");
}

我得到的错误:

error: couldn't read src\module_b\mod.rs: stream did not contain valid UTF-8
  --> src\main.rs:14:1
   |
14 | mod module_b;
   | ^^^^^^^^^^^^^

error: could not compile `rust_modules_cheat_sheet` due to previous error

我不确定什么非utf-8字符是在module_b,但不是在module_a

我在网上看到过很多类似的教程,但对于其他情况,这些教程并不完整或复杂。我想询问社区并研究如何使用rust中各种情况和模块的代码。如果您想在下面对我目前不确定的两个案例发表意见,我们将不胜感激。

/src
| main.rs
| lib.rs
| other.rs
|- module_a/
| | mod.rs
| | helper1.rs
|- module_b/
| | mod.rs
| | helper2.rs
| | helper3.rs
  • 使用other.rs中的代码main.rs(了解)
  • main.rs中使用lib.rs中的代码(了解)
  • lib.rs中使用mod.rs中的代码(理解)
  • 使用helper1.rs中的代码main.rs(了解)
  • helper3.rs中使用helper2.rs中的代码(不确定)
  • 使用代码从module_a/mod.rsmodule_b/mod.rs(使用crate::module_a)

希望链接到回购协议,这有助于将来的其他人。我知道我需要它。

谢谢

共有1个答案

苍志文
2023-03-14

这不是因为对Rust模块系统的误解。您的模块\u b\mod。rs文件采用UTF-16编码,而不是预期的UTF-8编码。

如果您正在使用VS Code:在Visual Studio Code中更改文件的编码您可以通过单击底部状态栏的UTF-16 LE部分并选择使用编码保存然后选择来更改编码UTF-8.

如果使用Vim:如何使用Vim更改文件的编码?

 类似资料:
  • 我有一个。csv文件,以西班牙语编写,因此它具有特殊字符,如ñ,á,é,í,ó,ú。因此,如果我在记事本中打开它,我可以看到所有正确书写的字符,并且我已经用UTF-8编码保存了文件。但是,当我打开RStudio并使用以下方式导入数据时: 我得到了所有数据集,但编码不正确,即: 应包括以下内容: 我已经尝试了所有的方法,我不知道还能做什么,因为我已经检查过R是否使用UTF-8编码,文件是否以相同的方

  • 问题内容: 下面是测试程序,包括一个汉字: 以下是结果,请看json.dumps将utf-8转换为原始数字! 为什么这坏了?还是我错了? 问题答案: 您应该阅读json.org。完整的JSON规范在右侧的白框中。 生成的JSON没有错。允许生成器生成UTF-8字符串或纯ASCII字符串,在这些字符串中使用符号转义字符。在您的情况下,Python 模块决定转义,并使用转义符号。 顺便说一句:任何符合

  • 嗨,我试图使我在UTF-8兼容的应用程序之一。我的环境如下:linux操作系统,apahce网络服务器作为超文本传输协议监听器,tomcat作为servlet引擎 配置了mod_jk和tomcat的apache s使用ajp连接器。 我已经从少数网站上阅读了UTF-8的基本指南,并根据建议尝试了以下方法 为服务器中的连接器设置和。xml 设置语言bashrc/. file使用 将apache服务器

  • 问题内容: 我真的很困惑。当我做: 它给我错误 UnicodeDecodeError:’ascii’编解码器无法解码位置0的字节0xef:序数不在范围内(128) 如果我做: 它工作正常。 问题 是为什么第一种方法会失败?以及如何插入宝? 如果第二种方法是正确的方法,那么使用的重点是什么? 问题答案: 我相信问题在于这是字节字符串,而不是Unicode字符串。我怀疑文件处理程序试图根据“我是将Un

  • 一个处理UTF-8编码字符串的简单、小巧、跨平台的泛型库。

  • 问题内容: 我在Java中有以下代码行: 编写者不会编写UTF-8文件,因为当我在notepad ++中打开文件时,它表示编码为:ANSI作为UTF-8。我需要它是纯UTF-8。 你有什么建议吗? 问题答案: notepad ++(和任何其他工具)只能 猜测 编码,它不会写在文件(或某些元数据)的任何位置。 并且,如果您编写的文本不包含ASCII范围之外的任何字符(即,Unicode码点> 127