网络服务器和 UTF-8 上 C++ 程序 运行 的文本输出

Text output of a C++ program running on a webserver and UTF-8

假设我有一个 C++ 程序,它为每个用户输入输出多种语言的一些文本(比如输入文本的翻译)。该程序在网络服务器上运行。但是,如果涉及到非 ASCII 符号的输出(如汉字或印度文字或希腊语),则控制台中显示的内容是垃圾。有没有办法在响应客户端请求时正确显示C++程序的输出?

您必须安排 web-server 的响应以明确指定 Content-Type: header 中的字符集,例如:

Content-Type: text/html; charset="utf-8"

这样做的确切机制取决于您使用的网络服务器,以及您的网络服务器处理执行 C++ 程序的方式。

对于大多数网络服务器,当它们执行外部程序时,外部程序预计会产生包含 header 行列表的响应,正好是一个空行,然后是响应的内容。如果是这样,您只需要确保在程序的输出中包含这个 header,在空行和内容之前。

然后,当然,对输出使用正确的 UTF-8 编码。