我正在寻找一种好的编程字体,它可以让我在 Unicode(通常是日语和中文以及一些拉丁语和西里尔语)中添加注释和字符串文字。
到目前为止,情况似乎是“完整的,等宽的,免费的,选择 2”,而谷歌让我失望了(也许是因为没有好的?)。
我发现的最好的是 Arial Unicode 但它不是等宽字体,这对我和我使用的编辑器来说是一个很大的麻烦。更不用说我在编写 Python 代码时的 Python 缩进了。
(欢迎链接、修改)
考虑这个程序:
{$APPTYPE CONSOLE}
begin
Writeln('????????Z??????????????????????????????????????');
end.
Run Code Online (Sandbox Code Playgroud)
我的控制台上使用Consolas字体的输出是:
????????Z??????????????????????????????????????
Windows控制台非常能够支持Unicode,如此程序所示:
{$APPTYPE CONSOLE}
uses
Winapi.Windows;
const
Text = '????????Z??????????????????????????????????????';
var
NumWritten: DWORD;
begin
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), PChar(Text), Length(Text), NumWritten, nil);
end.
Run Code Online (Sandbox Code Playgroud)
输出为:
????????Z??????????????????????????????????????
可以Writeln说服尊重Unicode,还是它固有的残缺?
我正在用C++编写一个跨平台的应用程序.所有字符串都在内部进行UTF-8编码.请考虑以下简化代码:
#include <string>
#include <iostream>
int main() {
std::string test = u8"Greek: ????; German: Übergrößenträger";
std::cout << test;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在Unix系统上,std::cout期望8位字符串是UTF-8编码的,所以这段代码工作正常.
但是,在Windows上,要求std::cout8位字符串采用Latin-1或类似的非Unicode格式(取决于代码页).这导致以下输出:
希腊语:????????; 德语:?£bergr?Âentr?ñger
如何std::cout在Windows上将8位字符串解释为UTF-8?
这是我试过的:
#include <string>
#include <iostream>
#include <io.h>
#include <fcntl.h>
int main() {
_setmode(_fileno(stdout), _O_U8TEXT);
std::string test = u8"Greek: ????; German: Übergrößenträger";
std::cout << test;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我希望_setmode能做到这一点.但是,这会在调用的行中导致以下断言错误operator<<:
Microsoft Visual C++运行时库
调试断言失败!
程序:d:\ visual studio 2015\Projects\utf8test\Debug\utf8test.exe文件:minkernel\crts\ucrt\src\appcrt\stdio\fputc.cpp行:47
表达式:((_Stream.is_string_backed())||(fn = _fileno(_Stream.public_stream()),((_ textmode_safe(fn)== __crt_lowio_text_mode :: ansi)&&!_ tm_unicode_safe(fn)))) …
是否可以在控制台中用 C 打印孟加拉语?如果可以做到,我该怎么做?
我试过:
wprintf (L"Character: %lc %lc \n", L'?', 2440);
Run Code Online (Sandbox Code Playgroud)
这不起作用。它只是显示一个未知的符号。在控制台中处理 UTF-8 格式数据的最佳公式是什么?如果可以使用 C++,我想知道。
c++ ×2
windows ×2
c ×1
delphi ×1
delphi-xe7 ×1
encoding ×1
fonts ×1
text-editor ×1
unicode ×1
utf-8 ×1