Articles of 字符编码

Java,档案,Linux和西里尔文

我尝试用java编写一个归档器,用正确的西里尔文件名创buildTAR或ZIP归档,然后在linux中打开。 在Windows中,我使用org.apache.tools.zip,从ant: ZipOutputStream.setEncoding("cp866"); 得到它,但在Linux文件辊(档案pipe理器)不明白它。 在org.apache.tools.tar方法中setEncoding()不存在。 此外,我尝试使用其他编码,支持西里尔语,如cp1251,utf-8,koi-8r,但它没有给出任何结果。

Qt:文件名中的非ASCII字符被replace为'?'

我必须在一个非常简化的系统上工作。 它基于Ubuntu,但未安装Ubuntu安装程序。 所以他们只是真正需要的软件包和configuration。 QtCreator是安装和工作。 当我尝试创build一个非ASCII字符的文件,该字符被replace? 。 例如: TestÄ.txt将被命名为Test?.txt 。 但是这只发生在我使用Qt函数的时候。 C ++标准库的作品。 例: #include <QDebug> #include <QFile> #include <fstream> int main(int, char *[]) { const char* fileName = "TestÄ.txt"; qDebug() << fileName; { QFile f(fileName); f.open(QIODevice::WriteOnly); f.write("QFile Äößń\n"); } { std::ofstream f; f.open(fileName, std::fstream::app); f << "std::ofstream Äößń\n"; } return 0; } 应该有两行文件TestÄ.txt 。 但是第一个块创build文件Test?.txt […]

shell不正确地读取windows中创build的文件

这是我的shell脚本和属性文件 test.sh #!/bin/bash source ./default.properties echo $app_name echo "$app_name ==" default.properties app_name=TestApplication 在开始时,我在Windows上的intellij中创build了test.sh和default.properties文件。 然后我复制到Linux并执行test.sh 但是,我得到的结果是: TestApplication ==tApplication 然后,我使用vim创build具有相同内容的新的default.properties 。 我得到正确的结果 TestApplication TestApplication == 使用差异命令,他们是真的不同,但我没有find差异在哪里 diff default.properties default.properties_2 1c1 < app_name=TestApplication — > app_name=TestApplication 在Windows上创build的文件中是否有一些不可见的字符,或者是一些编码问题?

我应该使用哪种字符集来编码和解码8位值?

我有编码和解码特定字节值的问题。 我正在实现一个应用程序,在那里我需要获取string数据,对其进行一些处理,并返回另一个string。 我目前通过String.getbytes()获取byte[]值,做适当的操作,然后通过构造函数String(byte[] data)返回String。 问题是,当一些字节有特定的值,例如-120 , -127等,构造函数中的编码返回? 字符,即字节值63 。 据我所知,这些值是不能在Windows上打印的,关于这样的事实,即Java中的-120是10001000 ,根据ASCII表是\b字符 有没有字符集,我可以使用正确的代码和解码每个字节值(从-128到127)? 编辑:我也会说, ISO-8859-1字符集工作得很好,但不编码语言特定的字符,如ąęćśńźżół

unicode字符在Linux中不能在Windows中工作

我在Linux(Ubuntu 13.04)中有一个程序 #include<stdio.h> int main() { char* cp = "ӐҖ"; printf("%s\n",cp); printf("%d\n",sizeof(*cp)); printf("%d\n",(unsigned int)*cp); return 0; } 第一个和第二个printf输出: ӐҖ 1 分别。 1.)我首先关心的是,在第三个printf中,我尝试将字符转换为unsigned int,试图查看代表第一个字符的unicode代码点,但是得到-45。 我应该用什么方法来查看由1字节的“char”数据types表示的单个Unicode字符的Unicode码? 2.)第二个问题,当我把这个代码移植到Windows 7时,[char * cp =“ӐҖ”;]将导致编译器“警告C4566:由通用字符名称\ uFFE6表示的字符不能在当前代码页(932)“。 当我运行它时,输出是: ?? 1 Windows不支持“char”数据types的unicode吗? 那么应该使用什么字符数据types来使我的代码可以从Linux移植到Windows?

如何处理ProcessBuilder命令中的编码?

五年前在coderanch上发布了一个非常类似的问题,但是没有得到任何答案: http : //www.coderanch.com/t/463055/java-io/java/handle-charset-ProcessBuilder 这是我的代码: new ProcessBuilder("/bin/bash", "-c", "echo тест | hexdump").start(); 这是我所期待的: 0000000 d1 82 d0 b5 d1 81 d1 82 这是我在另一台Linux机器上得到的: 0000000 f2 e5 f1 f2 它是什么? 如何解决?

检测string字符集

我正在寻找最好的Linux库,将让我检测string字符集。 任何想法 ?

将整个项目的字符集转换为utf-8

您好我有一个在Windows使用Windows 1252字符集制作的项目,我需要将我所有的.php文件转换为utf-8字符集,因为我的数据库都是utf-8编码。 有没有办法做到这一点使用Linux命令或软件?

Java:Runtime.getRuntime()。exec()在unicode中传递参数的时候不应该这样做

我的问题最好在一个示例中进行解释:以下程序在非Unicode模式的Linux系统上运行,但是在ISO-8859-15中。 环境设置如下: LC_CTYPE=de_DE@euro import java.io.*; import java.util.*; public class UnicodeTest { public static void main(String[] args) throws Exception { Runtime.getRuntime().exec(new String[] { "foobar", "äöü" }); } } 当我使用javac在命令行中编译这个程序并运行它时, foobar在ISO-8859-1中正确地获得了参数äöü 。 从Netbeans运行的相同程序将参数作为Unicode传递,从而使其在被调用的程序中不可用。 在调用该方法时,Tomcat也会发生同样的情况。 哪个设置或环境variables使用Java来确定如何在Runtime.exec()传递参数?

如何检测上传的csv文件的编码

我有data.csv文件,必须上传到服务器,parsing…. 这个文件可以有不同的编码。 我必须检测它并转换为utf8。 此时php函数mb_detect_encoding总是返回utf8。 我试过了: <?php mb_detect_encoding(file_get_contents($_FILES["csv_uploadfile"]["tmp_name"])); 要么 <?php mb_detect_encoding(file_get_contents($saved_file_path)); mb_detect_encoding返回utf8。 如果我使用bash命令 $ file -bi csv_import_1378376486.csv |awk -F "=" '{print $2}' 它重新运行iso-8859-1 所以当我尝试 iconv –from-code=iso-8859-1 –to-code=utf-8 csv_import_1378382527.csv 它不可读。 真正的编码是cp1251,我无法检测到它。 任何人都可以帮我解决这个问题吗?