【问题标题】:Why is my font encoding not working, despite setting "setlocale(LC_ALL, "Turkish");"?为什么我的字体编码不起作用,尽管设置了“setlocale(LC_ALL, "Turkish");"?
【发布时间】:2020-01-28 00:35:17
【问题描述】:

大家好,我对我的代码有疑问。我想我做的一切都是正确的。但是我有字体障碍。我该如何解决?我正在使用"setlocale(LC_ALL, "Turkish");",但土耳其符号仍未被正确解释。

这是我的代码:

//Klavyeden girilen 2 sayıdan küçüğünü bulup tekmi çiftmi olduğunu ekran 
yazdırınız...

#include "stdafx.h"
#include <iostream>

using namespace std;
int main()
{
setlocale(LC_ALL, "Turkish");
int x, y;


cout << "Birinci Sayıyı Giriniz:";
cin >> x;

cout << "İkinci Sayıyı Giriniz:";
cin >> y;

if (x < y && ((x % 2) == 0))
{
    cout << "İlk sayı ikinci sayıdan küçük ve çifttir.";
}
else if (x < y && ((x % 2) == 1))
{
    cout << "İlk sayı ikinci sayıdan küçük ve tektir.";
}
else if (y < x && ((x % 2) == 1))
{
    cout << "İlk sayı ikinci sayıdan büyük ve tektir.";
}
else
{
    cout << "İlk sayı ikinci sayıdan büyük ve çifttir..";
}



system("PAUSE");
return 0;}

这是我的代码中的文本:

这是显示一些乱码的输出:

【问题讨论】:

  • Edit 你的问题是将你的代码发布为文本而不是图片。在它关闭之前快点。
  • cmd 使用的字符编码与 VS Code 不同
  • 我没有使用 VS Code,我使用的是 Visual Studio 2019 IDE
  • 你用什么符号来表示“我”?您在第一句话的问题中再次使用它。请改用普通的“I”字符。
  • @EJoshuaS 伙计,我的意思是我在写“ı”(没有指出“i”)。这是一个土耳其符号。但是我写的是“setlocale(LC_ALL,“Turkish”);”。但是我有这个错误或错误或相同的东西......你明白吗?

标签: c++ fonts


【解决方案1】:

问题可能是因为 cmd 使用默认代码页 850 而不是 UTF-8

要使 cmd 使用 UTF-8,请执行以下操作*:

  1. 在 cmd 中输入chcp 65001,如果不起作用,请按照以下步骤操作。

  2. 开始 -> 运行 -> regedit

  3. 转到[HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\Autorun]
  4. 将值更改为chcp 65001

  5. 重新启动系统。

*在处理 Windows 注册表时,风险自负。

Source

以下是用于参考的代码页码,我看到您使用的是土耳其语,因此您可能还想使用代码 857Image source

【讨论】:

  • 我没有“自动运行”。只有我有(默认、CompletionChar、DefaultColor、EnableExtensions、PathCompletionChar)
  • 原因是输出控制台使用Latin encoding(850),而你又想显示非Lating字母,所以我建议你按照步骤使用UTF-8。
  • 我没有“自动运行”功能的人看看这张照片imgur.com/a/aPzLbRz
  • 然后添加字段
  • 或在cmd中运行chcp 65001
猜你喜欢
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
  • 2017-09-29
  • 2019-01-18
  • 1970-01-01
相关资源
最近更新 更多