标签: file-encodings

StreamWriter和UTF-8字节顺序标记

我遇到了StreamWriter和Byte Order Marks的问题.该文档似乎表明Encoding.UTF8编码已启用字节顺序标记,但是当写入文件时,一些文件具有标记,而其他文件没有.

我正在以下列方式创建流编写器:

this.Writer = new StreamWriter(this.Stream, System.Text.Encoding.UTF8);
Run Code Online (Sandbox Code Playgroud)

任何有关可能发生的事情的想法都将受到赞赏.

c# file-encodings

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

File.listFiles()使用JDK 6修改unicode名称(Unicode规范化问题)

在OS X和Linux上列出Java 6中的目录内容时,我正在努力解决一个奇怪的文件名编码问题:这些File.listFiles()和相关的方法似乎以不同于系统其他部分的编码方式返回文件名.

请注意,不仅仅是这些文件名的显示导致了我的问题.我主要感兴趣的是将文件名与远程文件存储系统进行比较,因此我更关心名称字符串的内容而不是用于打印输出的字符编码.

这是一个演示程序.它创建一个带有Unicode名称的文件,然后打印出从直接创建的文件中获取的文件名的URL编码版本,以及在父目录下列出的相同文件(您应该在空目录中运行此代码).结果显示该File.listFiles()方法返回的不同编码.

String fileName = "Trîcky Nåme";
File file = new File(fileName);
file.createNewFile();
System.out.println("File name: " + URLEncoder.encode(file.getName(), "UTF-8"));

// Get parent (current) dir and list file contents
File parentDir = file.getAbsoluteFile().getParentFile();
File[] children = parentDir.listFiles();
for (File child: children) {
    System.out.println("Listed name: " + URLEncoder.encode(child.getName(), "UTF-8"));
}
Run Code Online (Sandbox Code Playgroud)

这是我在系统上运行此测试代码时得到的结果.请注意%CC%C3角色的表示.

OS X Snow Leopard:

File name: Tri%CC%82cky+Na%CC%8Ame
Listed name: Tr%C3%AEcky+N%C3%A5me

$ java -version
java version "1.6.0_20"
Java(TM) SE …
Run Code Online (Sandbox Code Playgroud)

java unicode normalization file-encodings unicode-normalization

36
推荐指数
1
解决办法
9863
查看次数

我怎样才能确定文件编码?

我有一个用VIM创建的PHP文件,但我不确定它的编码是什么.

当我使用终端并使用命令检查编码file -bi foo(我的操作系统是Ubuntu 11.04)时,它给出了下一个结果:

text/html; charset=us-ascii

但是,当我用gedit打开文件时,它说它的编码是UTF-8.

哪一个是正确的?我希望文件以UTF-8编码.

我的猜测是文件中没有BOM并且命令file -bi读取文件并且没有找到任何UTF-8字符,所以它假设它是ascii,但实际上它是用UTF-8编码的.

utf-8 character-encoding file-encodings

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

PowerShell out-file:阻止编码更改

我正在进行一些搜索和替换操作,我正在尝试使用PowerShell进行自动化.不幸的是,我昨天认识到我们的代码库中有不同的文件编码(UTF8和ASCII).因为我们在不同的分支中执行这些搜索和替换操作,所以在此阶段我无法更改文件编码.

如果我正在运行以下行,它会将所有文件更改为UCS-2 Little Eindian,即使我的默认PowerShell编码设置为iso-8859-1(西欧(Windows)).

$content = Get-Content $_.Path
$content -replace 'myOldText' , 'myNewText' | Out-File $_.Path
Run Code Online (Sandbox Code Playgroud)

有没有办法阻止PowerShell更改文件的编码?

powershell encoding file-encodings

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

Powershell:获取默认系统编码

powershell cmdlet out-file具有-encoding您可以设置的开关default.此默认值将使用系统当前ANSI代码页的编码.
我的问题是:如何获取out-file将与powershell一起使用的此默认编码的名称?

powershell file-encodings

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

Linux上的Java Charset问题

问题:我有一个包含特殊字符的字符串,我将其转换为字节,反之亦然..转换在Windows上正常工作但在linux上特殊字符未正确转换.在Linux上的默认字符集是使用Charset看到的UTF-8. defaultCharset.getdisplayName()

但是如果我使用选项-Dfile.encoding = ISO-8859-1在linux上运行它可以正常工作..

如何使用UTF-8默认字符集使其工作,而不在unix环境中设置-D选项.

编辑:我使用jdk1.6.13

编辑:代码段与cs ="ISO-8859-1"一起使用; 或者cs ="UTF-8"; 在胜利但不在Linux

        String x = "½";
        System.out.println(x);
        byte[] ba = x.getBytes(Charset.forName(cs));
        for (byte b : ba) {
            System.out.println(b);
        }
        String y = new String(ba, Charset.forName(cs));
        System.out.println(y);
Run Code Online (Sandbox Code Playgroud)

〜关于黛德

java character-encoding file-encodings

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

为什么R读UTF-8标题为文本?

我将Excel表保存为文本(*.txt).不幸的是,Excel不允许我选择编码.所以我需要在记事本(打开为ANSI)中打开它并将其保存为UTF-8.然后,当我在R中读到它时:

data <- read.csv("my_file.txt",header=TRUE,sep="\t",encoding="UTF-8")
Run Code Online (Sandbox Code Playgroud)

它显示以"XUFEFF."开头的第一列的名称.我知道这些是保留的字节,告诉任何程序该文件是UTF-8格式.所以它不应该显示为文本!这是一个错误吗?或者我错过了一些选择?提前致谢!

csv byte-order-mark r utf-8 file-encodings

8
推荐指数
1
解决办法
4559
查看次数

如何将Delphi IDE中的默认文件格式设置为UTF8?

Delphi 2009将新源代码文件的默认文件格式设置为ANSI,这使得源代码依赖于平台.

即使是在IDE中创建的新XSD文件,默认情况下也以此行开头

<?xml version="1.0" encoding="UTF-8" ?>
Run Code Online (Sandbox Code Playgroud)

Delphi将文件格式设置为ANSI(这看起来像一个bug,默认选择新的XML和XSLT文档UTF8).

是否有隐藏选项来设置源代码文件的默认文件格式?

delphi utf-8 delphi-2009 file-encodings

7
推荐指数
4
解决办法
6098
查看次数

有没有办法用Java检查.txt文件的charset编码?

有没有办法检查用Unicode编码的文本文件(.txt)或用Java编写的UTF-8?

java unicode utf-8 character-encoding file-encodings

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

如何在UTF-8编码文件中写入和读取可打印的ASCII字符?

我想写与包含字符UTF-8编码文件 10001100Œ拉丁资本结扎OE在扩展ASCII表,

zz <- file("c:/testbin", "wb")
writeBin("10001100",zz)
close(zz)
Run Code Online (Sandbox Code Playgroud)

当我用office打开文件(encoding = utf-8)时,我可以看到Œ我读不到的是readBin?

zz <- file("c:/testbin", "rb")
readBin(zz,raw())->x
x
[1] c5
readBin(zz,character())->x
Warning message:
In readBin(zz, character()) :
incomplete string at end of file has been discarded
x
character(0)
Run Code Online (Sandbox Code Playgroud)

file-io ascii r utf-8 file-encodings

7
推荐指数
1
解决办法
786
查看次数