相关疑难解决方法(0)

在测试中捕获控制台应用程序输出时的编码问题

我试图通过使用System.Diagnostics.Process在测试中运行它来捕获控制台应用程序的输出.我遇到字符编码问题."£"在测试中显示为"œ",但是当我运行控制台应用程序时,它正确显示为"£".

如果我设置Console.Out.Encoding = Encoding.Default,它在测试中有效,但在正常运行时无法正常显示.

这里发生了什么,我该如何解决?

c# encoding system.diagnostics console-application

6
推荐指数
1
解决办法
2388
查看次数

来自 pip 安装的 Unicode 错误

我正在尝试使用 pip 和命令安装 pyevolve 模块:

pip安装pyevolve

并收到错误“UnicodeDecodeError:'ascii'编解码器无法解码位置0中的字节0xc0:序号不在范围内(128)”

我发现的唯一类似问题如下:

pip 安装 UnicodeDecodeError

不幸的是,无法理解如何使用答案.. 任何人都可以帮我吗?

系统:Windows 7 64 位 Anaconda-2.2.0-Windows-x86_64

windows unicode pip python-2.7

6
推荐指数
0
解决办法
3068
查看次数

Perl6(Rakudo)-如何处理文件中的特殊字符?

如何从外部文件读取特殊字符?这是一个简单.txt的法语文件,内容为https://fr.lipsum.com/的第一段:如您在我的屏幕截图中所看到的,文件编码为UTF-8,但是口音无法正确显示。

我在notepad ++和perl6脚本中尝试了各种编码,如下所示:

enc => "utf8"
enc => "latin1"
Run Code Online (Sandbox Code Playgroud)

使用Python或Ruby脚本,我不会遇到问题。我找不到关于此问题的任何精确示例,可能是因为perl 6还是很新的(??)。谢谢。

屏幕截图中显示了我的脚本:

my $text_contents = slurp "testfile.txt", enc => "utf8";
say $text_contents;
prompt;
Run Code Online (Sandbox Code Playgroud)

Perl6脚本,notepad ++中的输入文件,cmd.exe中的exec


最终编辑:解决方案是启用一个选项,该选项在Windows 10 1803中处于beta状态,以使OS正确处理Unicode字符:请参阅下面的答案和评论...

io character-encoding rakudo perl6

6
推荐指数
1
解决办法
142
查看次数

在 Notepad++ 中使用 Python 使瑞典语字符在 Windows 命令提示符中正确显示

标题很好地解释了这一点。我已经设置了 Notepad++,以便在按时在命令提示符中打开 Python 脚本F8,但在 CMD 中打开时,所有瑞典字符看起来都很混乱,但在例如 IDLE 中则完全正常。

\n\n

这个简单的示例代码:

\n\n
#!/usr/bin/env python\n#-*- coding: UTF-8 -*-\nprint "\xc3\xa5\xc3\xa4\xc3\xb6"\n
Run Code Online (Sandbox Code Playgroud)\n\n

看起来是这样的。

\n\n

正如您所看到的,我用来在下面的 cmd 中打开 Python 的批处理文件的输出正确显示了字符,但上面的 Python 脚本却没有显示。我该如何解决?我只是想正确显示字符我不一定也使用UTF-8。

\n\n

我使用这种方法在cmd中打开文件。

\n\n

更新:已解决。在批处理文件顶部添加了“chcp 1252”行,然后在其下方添加了 cls 行,以删除有关其使用的字符编码的消息。然后我在python脚本中使用了“# --coding:cp1252-- ”,并将cmd中的字体更改为Lucida Console。这是通过单击 cmd 窗口右上角的 cmd 图标并进入属性来完成的。

\n

python command cmd notepad++

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

Java中控制台应用程序中的Unicode输入

我一直在尝试在我的Java应用程序中检索"unicode用户输入"以获取一个小实用程序代码段.问题是,它似乎正在Ubuntu"开箱即用",我猜想在UTF-8上运行OS宽编码,但从"cmd"运行时无法在Windows上运行.考虑的代码如下:

public class SerTest {

    public static void main(String[] args) throws Exception {
        testUnicode();
    }

    public static void testUnicode() throws Exception {
        System.out.println("Default charset: " +
           Charset.defaultCharset().name());
        BufferedReader in  =
           new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
        System.out.printf("Enter '????? ???': ");
        String line = in.readLine();
        String s = "????? ???";
        byte[] sBytes = s.getBytes();
        System.out.println("strg bytes: " + Arrays.toString(sBytes));
        byte[] lineBytes = line.getBytes();
        System.out.println("line bytes: " + Arrays.toString(lineBytes));
        PrintStream out = new PrintStream(System.out, true, "UTF-8");
        out.print("--->" + s + "<----\n");
        out.print("--->" + line …
Run Code Online (Sandbox Code Playgroud)

java unicode console-application

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

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
查看次数

使用csv文件使用utf8名称复制/重命名图像

我正在编写一个脚本来批量重命名和复制基于csv文件的图像.csv由第1列组成:旧名称和第2列:新名称.我想使用csv文件作为perl脚本的输入,以便它检查旧名称并使用新名称将副本复制到新文件夹中.(我认为)我与图像有关的问题.它们包含像ß等utf8字符.当我运行脚本时,它打印出来:Barfu├ƒg├ñsschen它应该是Barfußgässchen并且出现以下错误:

Unsuccessful stat on filename containing newline at C:/Perl64/lib/File/Copy.pm line 148, <$INFILE> line 1.
Copy failed: No such file or directory at X:\Script directory\correction.pl line 26, <$INFILE> line 1.
Run Code Online (Sandbox Code Playgroud)

我知道它与Binmode utf8有关,但即使我尝试一个简单的脚本(在这里看到它:如何从Perl输出UTF-8?):

use strict;
use utf8;
my $str = 'Çirçös';
binmode(STDOUT, ":utf8");
print "$str\n";
Run Code Online (Sandbox Code Playgroud)

它打印出来:Ãirþ÷s

这是我的整个剧本,有人可以向我解释我哪里出错了吗?(它不是最干净的代码,因为我正在测试的东西).

use strict;
use warnings;
use File::Copy;
use utf8;

my $inputfile  = shift || die "give input!\n";
#my $outputfile = shift || die "Give output!\n";

open my $INFILE,  '<', $inputfile   or die "In use …
Run Code Online (Sandbox Code Playgroud)

csv perl utf-8

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

在数据库中更新/插入/检索重音字符?

我用的是oracle 12G

\n\n

当我@F:\\update.sql从 sql plus 运行时,它显示重音字符\xc3\xa9运行时,当我从 sqlplus 或 sql Developer 检索时,它会将重音字符显示为垃圾字符

\n\n

当从 sql plus 运行单个语句时。现在,如果我从 sqlplus 检索它,它会显示正确的字符,但是当我从 sqldeveloper 检索它时,它再次显示垃圾字符。

\n\n

update.sql内容是这样的

\n\n
update employee set name =\'\xc3\xa9\' where id= 1;\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想要的是当我运行 @F:\\update.sql 时,它应该以正确的格式插入/更新/检索它,无论它是来自 sqlplus 还是任何其他工具?

\n\n

信息:- 当我跑步时

\n\n
   SELECT * FROM NLS_DATABASE_PARAMETERS  WHERE PARAMETER LIKE \'%CHARACTERSET%\' \n
Run Code Online (Sandbox Code Playgroud)\n\n

我得到以下信息

\n\n
PARAMETER                      VALUE\n------------------------------ ----------------------------------------\nNLS_CHARACTERSET               WE8MSWIN1252\nNLS_NCHAR_CHARACTERSET         AL16UTF16\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我@.[%NLS_LANG%]从命令提示符运行时我看到

\n\n
SP2-0310: unable to open file ".[AMERICAN_AMERICA.WE8MSWIN1252]"\n
Run Code Online (Sandbox Code Playgroud)\n

sql oracle sqlplus

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

如何将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万
查看次数

使用 UTF-8 编码从 Oracle 数据库假脱机文件时出现编码问题

问题描述:

\n

我有一个在 Oracle 数据库(Windows 或 Unix 操作系统)上运行的脚本。它提取数据,然后将其假脱机到 .txt 文件。

\n

为了确保文件不变,在运行脚本时对数据进行哈希处理,然后在 Web 应用程序中重新计算该哈希值。这可以工作 9/10 次,但有时它会提供不匹配,即使文件是相同的,我将其隔离为编码问题。

\n

为了确定文件使用的编码,该脚本将 3 个非 ASCII 字符写入文件,这些字符在不同的编码方案中编码不同。这些稍后会映射到后端。

\n
--Encoding related information\nSPOOL &&file_desc/Encoding.txt\nSELECT ('\xe2\x82\xac'||';'||'\xc6\x92'||';'||'\xe2\x80\xb0') FROM sys.dual;\nSPOOL off\n
Run Code Online (Sandbox Code Playgroud)\n

预期结果

\n

在使用 UTF-8 编码的数据库上,应正确假脱机包含 NONASCII 字符的数据,并且 3 个 NONASCII 字符也应正确假脱机。

\n

实际结果

\n

当使用 .AL32UTF8 系统字符集(与 DB 相同)时,数据会正确假脱机,但用于编码的 3 个字符则不然。这使得我无法确定使用了哪种编码方案。

\n

数据库具有以下字符集(从database_properties获得):

\n

NLS_CHARACTESET:AL32UTF8

\n

NLS_NCHAR_CHARACTERSET:AL16UTF16

\n

SQL-Developer 工作

\n

使用 SQL-Developer 时(将编码设置为 UTF8 后)),我没有任何问题。日语和希腊字符都正确显示,并且用于编码的字符也正确显示,从而在稍后重新计算时导致成功的哈希匹配。

\n

SQL*Plus 无法\xe2\x80\x99 工作

\n

我也需要它在 SQL*Plus 中工作,但我\xe2\x80\x99 遇到了问题。我\xe2\x80\x99已经尝试了一系列不同的变体。DB是Oracle 18c Express版本:

\n …

oracle encoding plsql sqlplus utf-8

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