cyanfish / grpc-dotnet-namedpipes

Named pipe transport for gRPC in C#/.NET
Apache License 2.0
190 stars 48 forks source link

Unicode support #31

Closed rocksdanister closed 2 years ago

rocksdanister commented 2 years ago

When trying to send Unicode string like Chinese characters from server/client it is not working.

To reproduce:

Proto:

syntax = "proto3";

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {} 
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

Server:

public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
  {
    return Task.FromResult(new HelloReply
    {
        Message = $"你好(Hi) {request.Name}"
    });
  }

Client:

var client = new Greeter.GreeterClient(new NamedPipeChannel(".", "TEST:PIPE"));
var resp = await client.SayHelloAsync(new HelloRequest() { Name = "卫宫(Emiya)" });
Console.WriteLine(resp.Message);
Console.ReadKey();

Output: Screenshot 2021-12-27 103625

??(Hi) ??(Emiya)

rocksdanister commented 2 years ago

Nevermind.. just found out cmd does not support unicode 😅.