erlang 发送套接字西里尔文数据

Posted

技术标签:

【中文标题】erlang 发送套接字西里尔文数据【英文标题】:erlang send socket cyrillic data 【发布时间】:2011-06-11 18:49:51 【问题描述】:

我正在尝试从用 Erlang 编写的服务器发送数据:

gen_tcp:send(Socket, "Server connection refused \r\n").

没关系。但是当我尝试使用非拉丁符号发送数据时,例如。 G。西里尔文,我看到错误报告。例如,如果我使用:

gen_tcp:send(Socket, "Привет \r\n").

我看到的不是字符串,而是错误报告。如何通过 Erlang 的 TCP 套接字发送包含非拉丁字符的字符串?

【问题讨论】:

如果我错了,请纠正我,但套接字不只是用于发送字节流吗?对于 ASCII,通常有一些方便的方法可以将字符串视为字节,但对于普通文本,您需要使用字符编码。 【参考方案1】:

试试这个:

8> unicode:characters_to_binary("пириуэт да").
<<208,191,208,184,209,128,208,184,209,131,209,141,209,130,
  32,208,180,208,176>>
9>

【讨论】:

这在 shell 中工作,但是当我把它放入 gen_server 代码时我得到错误报告 @shk:你能提供你遇到问题的代码吗?

以上是关于erlang 发送套接字西里尔文数据的主要内容,如果未能解决你的问题,请参考以下文章

Erlang 套接字发送超时永远不会发生

将erlang套接字存储到数据库

支持 BigQuery 中的西里尔文数据

搜索包含西里尔文数据的 SQLite 数据库

Delphi Indy 以西里尔文发送 POST 数据

Erlang:连接到服务器,并在同一个套接字上接收输入