相关疑难解决方法(0)

wostream无法输出wstring

我正在使用Visual Studio C++ 2008(Express).当我运行下面的代码时,wostream(both std::wcoutstd::wfstream)在遇到第一个非ASCII字符(在这种情况下是中文)时停止输出.纯ASCII字符打印正常.但是,在调试器中,我可以看到wstrings实际上已正确填充了中文字符,并且output << ...实际上正在执行.

Visual Studio解决方案中的项目设置设置为"使用Unicode字符集".为什么std::wostream无法输出ASCII范围之外的Unicode字符?

void PrintTable(const std::vector<std::vector<std::wstring>> &table, std::wostream& output) {
    for (unsigned int i=0; i < table.size(); ++i) {
        for (unsigned int j=0; j < table[i].size(); ++j) {
            output << table[i][j] << L"\t";
        }
        //output << std::endl;
    }
}


void TestUnicodeSingleTableChinesePronouns() {
    FileProcessor p("SingleTableChinesePronouns.docx");
    FileProcessor::iterator fileIterator;
    std::wofstream myFile("data.bin", std::ios::out | std::ios::binary);
    for(fileIterator = p.begin(); fileIterator != p.end(); ++fileIterator) {
        PrintTable(*fileIterator, myFile);
        PrintTable(*fileIterator, std::wcout);
        std::cout<<std::endl<<"---------------------------------------"<<std::endl;
    } …
Run Code Online (Sandbox Code Playgroud)

c++ unicode visual-studio-2008 wofstream

5
推荐指数
1
解决办法
3517
查看次数

如何将Jenkins中的编码设置为UTF-8

控制台输出中的西里尔符号未正确显示.Jenkins在Windows 7上运行Tomcat/8.5.11
Jenkins属性显示:
file.encoding Cp1251
sun.jnu.encoding Cp1251
sun.stderr.encoding cp866
sun.stdout.encoding cp866

如何在Jenkins中设置UTF-8的编码?自动测试代码中的编码是UTF-8.
这是西里尔文中的示例问题
_максимум_РёРЅС"ормации

已解决:我在bin文件夹中创建了文件setenv.bat并设置了JAVA_OPTS =" - Dfile.encoding = UTF-8"

java tomcat utf-8 jenkins

5
推荐指数
2
解决办法
1万
查看次数

在命令提示符/ Windows Powershell(Windows 10)中使用UTF-8编码(CHCP 65001)

我已经chcp 65001在命令提示符和Windows Powershell中强制使用了一段时间,但是从SO和其他几个社区的问答环节来看,这似乎是一种危险且低效的解决方案。Microsoft是否提供一种chcp 65001可以永久保存而无需手动更改注册表的改进/完整替代方案?如果没有,将来是否有公开宣布的时间表或议程来支持Windows CLI中的UTF-8?

我个人已经使用了chcp 949韩国字符支持,但反斜线的怪异显示\在多个应用程序(如Neovim),以及字符和不正确/难以理解的显示器是不是韩国未通过支持949似乎变得更加的最近有问题。

windows powershell utf-8 console-application

5
推荐指数
2
解决办法
3580
查看次数

C++无限标志

您好我只是想知道如何在C++中显示无穷大(∞)?我正在使用CodeBlocks.我在这个主题上阅读了几个关于Q&A的内容,但我是这方面的新手,尤其是Hex编码和东西.我需要包括什么以及我要准确输入什么内容.如果有人可以编写代码并解释它,那就太好了!谢谢!

c++ codeblocks

4
推荐指数
1
解决办法
3670
查看次数

比较C#中的日文字符

我正在检查日语字符串的空格并用"_"替换它们.这就是我在做的事情:

string input1="abc  dfg";
string input2="????";
if(input1.Contains(" "))
{
  Console.WriteLine(input1.Replace(" ","_"));
}
Console.WriteLine("------------------");
if(input2.Contains(" "))
{
  Console.WriteLine(input2.Replace(" ","_"));
}
Run Code Online (Sandbox Code Playgroud)

这是此代码的输出

abc__dfg
------------------
Run Code Online (Sandbox Code Playgroud)

它在简单的英文字符串中用"_"替换空格,但在日语字符串中则不是.

c# string

4
推荐指数
1
解决办法
762
查看次数

chcp 65001代码页导致程序终止,没有任何错误

问题
当我想在Python解释器中输入 Unicode字符时出现问题(为简单起见,我在示例中使用了a-umlaut,但我首先遇到了这个用于Farsi字符).每当我将python与chcp 65001代码页一起使用,然后尝试输入一个Unicode字符时,Python就会退出而没有任何错误.

我花了好几天试图解决这个问题无济于事.但是今天,我在python网站上发现了一个帖子,另一个在MySQL上发现了一个线程,另一个在Lua用户身上发现了这个突然退出的问题,尽管没有任何解决方案,有些说这chcp 65001本身就是破坏的.

一劳永逸地知道这个问题是与chcp设计有关还是有可能的解决方法.

重现错误

chcp 65001

Python 3.X:

Python shell

print('ä')

结果:它只是退出shell

然而,这是有效的python.exe -c "print('ä')" ,也是这样的:print('\u00e4')

结果:ä

在Luajit2.0.4中

print('ä')

结果:它只是退出shell

但这有效: print('\xc3\xa4')

到目前为止,我已经提出了这个观察结果:

  1. 使用命令提示符直接输出有效.
  2. 基于Unicode,基于十六进制的角色等效于该角色.

所以, 这不是一个Python的错误我们不能在Windows命令提示符或任何其包装像Conemu,Cmder的CLI程序直接使用Unicode字符(我用Cmder能够看到和在Windows中使用Unicode字符shell和我这样做没有任何问题).它是否正确?

python windows unicode cmd codepages

4
推荐指数
1
解决办法
2073
查看次数

如何使用 Visual Studio 将 Unicode 打印到 C 中的输出控制台?

正如问题所说,我必须做什么才能将 Unicode 字符打印到输出控制台?我必须使用哪些设置?现在我有这个代码:

wchar_t* text = L"the ?";
wprintf(L"Text is %s.\n", text);
return EXIT_SUCCESS;
Run Code Online (Sandbox Code Playgroud)

它打印: Text is the ?.

我尝试将输出控制台的字体更改为 MS Mincho、Lucida Console 和其他一些字体,但它们仍然不显示日文字符。

那么,我该怎么办?

c windows unicode visual-studio

4
推荐指数
2
解决办法
4032
查看次数

是否可以在BAT文件中使用扩展的ASCII字符?

我有一堆动态创建的*.BAT文件.这些BAT文件用于在服务器中创建文件夹.每个BAT文件中只有一行,例如:MKDIR\NetworkShare\abc\123

这个"abc\123"字符串来自数据库.

它可以运行一段时间按需创建数千个子文件夹,直到今天它停止创建一个特殊的子文件夹,它在字符串中有一个"关闭单引号"(如果从dos提示符输入,则为Alt+ 0146).

我做了一些研究,发现这个"关闭单引号"是一个扩展的ASCII字符.它无法在ANSI BAT文件中正确保存(最终为其他内容).我尝试了UNICODE和UTF-8 BAT文件,但它不起作用.

唯一近乎接近的解决方案是我尝试使用二进制编辑器来确保代码146,但代码146给了我Æ(ALT-146)而不是"单引号"(Alt+ 0146).

我知道我可以在DOS提示符下手动输入特殊字符(使用键盘Alt+ ).但是有没有办法在BAT文件中正确保存这个"关闭单引号"(Alt+ 0146)所以我可以动态执行它们?

主机系统是Windows Server 2003美国英语.

ansi batch-file extended-ascii

3
推荐指数
1
解决办法
2万
查看次数

在sqlite中为主数据库设置PRAGMA encoding ="UTF-16"

我读到在创建数据库之后无法更改数据库的文本编码,并且将无声地忽略任何尝试这样做的操作.(从这里)

这篇文章中,为了创建主数据库,在SQLite中说'databasename.db',我们必须在命令提示符下键入以下内容:

sqlite3 databasename.db

它创建数据库并显示sqlite shell:

C:\Documents and Settings\Administrator>sqlite3 AudioData.db
SQLite version 3.7.11 2012-03-20 11:35:50
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如何设置PRAGMA编码?如果在创建数据库命令之后启动sqlite shell,我怎么能在create database命令之前给出PRAGMA命令?提前致谢!

database sqlite character-encoding

3
推荐指数
1
解决办法
1万
查看次数

Windows上的MinGW + GCC和UTF-8字符

我遇到了GCC编译器和Windows CMD的问题,因为我无法正确看到UTF-8字符.我有以下代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char caractere;
  int inteiro;
  float Float;
  double Double;

  printf("Tipo de Dados\tNúmero de Bytes\tEndereço\n");
  printf("Caractere\t%d bytes \t em %d\n", sizeof(caractere), &caractere);
  printf("Inteiro\t%d bytes \t em %d\n", sizeof(inteiro), &inteiro);
  printf("Float\t%d bytes \t\t em %d\n", sizeof(Float), &Float);
  printf("Double\t%d bytes \t em %d\n", sizeof(Double), &Double);

  printf("Caractere: %d bytes \t em %p\n", sizeof(caractere), &caractere);
  printf("Inteiro: %d bytes \t em %p\n", sizeof(inteiro), &inteiro);
  printf("Float: %d bytes \t\t em %p\n", sizeof(Float), &Float);
  printf("Double: %d bytes \t em %p\n", …
Run Code Online (Sandbox Code Playgroud)

c windows gcc cmd utf-8

3
推荐指数
1
解决办法
4476
查看次数