gpt4 book ai didi

c# - Google Protocol Buffer 不为 C# 编译

转载 作者:行者123 更新时间:2023-12-02 17:26:09 26 4
gpt4 key购买 nike

这是我第一次尝试使用 Google Protocol Buffer 编写原型(prototype)。我的文件如下所示:

syntax = "proto3";
package Clark.EDI.Protos;

// [START csharp_declaration]
option csharp_namespace = "Clark.EDI.Protos";
// [END csharp_declaration]

// [START messages]
message Address {
required int32 addressId = 1;
optional string namePrimary = 2;
optional string nameSecondary = 3;
optional string streetPrimary = 4;
optional string streetSecondary = 5;
optional string city = 6;
optional string stateCode = 7;
optional string zipCode = 8;
optional string countryCode = 9;
}
// [END messages]

我正在尝试像这样编译它:

protoc --csharp_out=src address.proto

即使我将其定义为 proto3,它也要求是必需的或可选的。

当我包含 requiredoptional 时,我会收到这些消息,但没有 .cs 文件。

address.proto:1:1: Interpreting non ascii codepoint 239. address.proto:1:1: Expected top-level statement (e.g. "message"). address.proto:1:2: Interpreting non ascii codepoint 187. address.proto:1:3: Interpreting non ascii codepoint 191.

我错过了什么或做错了什么?

最佳答案

我认为您的文本编辑器正在悄悄地在您的 address.proto 文件的开头插入字节顺序标记。错误信息暗示文件中的前三个字节是239 187 191,或EF BB BF,这是UTF-8字节顺序标记:

Encoding    Hexadecimal    Decimal        CP1252 characters
UTF-8 EF BB BF 239 187 191 

Wikipedia

您使用的是哪个文本编辑器?如果您使用的是 Windows,请尝试在记事本或 Notepad++ 中打开该文件。如果您摆弄编码设置,您应该会在文件开头看到 3 个意外字符。删除它们。

关于c# - Google Protocol Buffer 不为 C# 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38638951/

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