在linux中输入包含希腊字符的字符串

时间:2016-05-01 06:49:09

标签: c++ linux vim

我有一个返回字符串的函数。 我必须在函数本身中使用希腊字符定义该字符串,并且应该返回该字符串。 我在Linux平台上工作,我的代码是用C ++编写的。

我的功能如下:

string gen_string()
{
  string str = "αγρω";
  return str;
}

但我无法提供意见。 当我尝试复制粘贴我想要的希腊字符时,它会显示为一些垃圾字符。

有人可以帮我这个吗?

提前致谢。

修改: 感谢您的回复。

它不是关于使用wstring或string。 当我将字符串复制到vim以将其作为输入时,它显示为类似的东西。

▒〜^▒〜T▒〜A▒〜A201604¸▒〜B▒žMDF_F▒〜S123▒〜T▒〜B▒▒〜B▒

我还尝试将文本保留在文件中并从vim打开文本文件。 但它仍然是一样的。

2 个答案:

答案 0 :(得分:0)

string仅适用于ASCII字符,我相信。

您拥有国际化的Unicode字符。考虑将std::wstring用于多字节"宽"字符串。

答案 1 :(得分:0)

如果您的意思是从某些文本复制到终端输入,那么如何执行此操作取决于终端。如果它是一个gnome终端,你需要在语言环境设置中指定UTF-8,虽然我不确定这是否能得到希腊字母。

locale命令将列出locale.conf中的当前语言环境设置。您可能想要更改LANG设置。系统范围内的一种方法是

localectl set-locale LANG = en_country_code.UTF-8

更改country_code。它是美国的美国,但我不知道希腊代码是什么。你可能需要成为root用户。只为自己修改

〜/的.config / locale.conf (或$ XDG_CONFIG_HOME / locale.conf或$ HOME / .config / locale.conf)。

无论哪个访问locale.conf文件。在大多数系统中,所有系统都这样做。