标签: encoding

在Java中编码XML文本数据的最佳方法?

除了Java之外,与此问题非常相似.

在Java中为XML输出编码字符串的推荐方法是什么?字符串可能包含"&","<"等字符.

java xml encoding

88
推荐指数
13
解决办法
17万
查看次数

如何在Java中找到默认的字符集/编码?

显而易见的答案是使用,Charset.defaultCharset()但我们最近发现这可能不是正确的答案.有人告诉我,结果与java.io类在多个场合使用的真正的默认字符集不同.看起来Java保留了2套默认字符集.有没有人对这个问题有任何见解?

我们能够重现一个失败案例.这是一种用户错误,但它仍然可能暴露所有其他问题的根本原因.这是代码,

public class CharSetTest {

    public static void main(String[] args) {
        System.out.println("Default Charset=" + Charset.defaultCharset());
        System.setProperty("file.encoding", "Latin-1");
        System.out.println("file.encoding=" + System.getProperty("file.encoding"));
        System.out.println("Default Charset=" + Charset.defaultCharset());
        System.out.println("Default Charset in Use=" + getDefaultCharSet());
    }

    private static String getDefaultCharSet() {
        OutputStreamWriter writer = new OutputStreamWriter(new ByteArrayOutputStream());
        String enc = writer.getEncoding();
        return enc;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们的服务器需要Latin-1中的默认字符集来处理传统协议中的一些混合编码(ANSI/Latin-1/UTF-8).所以我们所有的服务器都运行这个JVM参数,

-Dfile.encoding=ISO-8859-1
Run Code Online (Sandbox Code Playgroud)

这是Java 5的结果,

Default Charset=ISO-8859-1
file.encoding=Latin-1
Default Charset=UTF-8
Default Charset in Use=ISO8859_1
Run Code Online (Sandbox Code Playgroud)

有人试图通过在代码中设置file.encoding来更改编​​码运行时.我们都知道这不起作用.但是,这显然抛弃了defaultCharset(),但它不会影响OutputStreamWriter使用的实际默认字符集.

这是一个错误或功能吗?

编辑:接受的答案显示了问题的根本原因.基本上,您不能信任Java 5中的defaultCharset(),它不是I/O类使用的默认编码.看起来Java 6纠正了这个问题.

java encoding character-encoding

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

如何在C#中实现Base64 URL安全编码?

我想在C#中实现Base64 URL安全编码.在Java中,我们有一个公共Codec库,它为我提供了一个URL安全编码字符串.如何使用C#实现相同的目标?

byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes("StringToEncode");
string returnValue = System.Convert.ToBase64String(toEncodeAsBytes);
Run Code Online (Sandbox Code Playgroud)

上面的代码将它转换为Base64,但它填充==.有没有办法实现URL安全编码?

c# base64 encoding

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

87
推荐指数
2
解决办法
6万
查看次数

使用Sublime Text 3中的BOM将文件编码设置为UTF8

当我在Sublime Text 3中打开文件时,在底部我可以选择设置字符编码,如屏幕截图所示.

设置编码

可以选择将其设置为UTF-8,在进行一些研究后意味着没有BOM的UTF-8,但我想将其设置为UTF-8使用BOM如下所示:

带BOM的UTF-8

我怎样才能从ST3中做到这一点?

encoding utf-8 sublimetext2 sublimetext3

87
推荐指数
2
解决办法
17万
查看次数

使用Javascript的atob解码base64不能正确解码utf-8字符串

我正在使用Javascript window.atob()函数来解码base64编码的字符串(特别是GitHub API中的base64编码内容).问题是我得到了ASCII编码的字符(â¢而不是).如何正确处理传入的base64编码流,以便将其解码为utf-8?

javascript encoding utf-8

84
推荐指数
7
解决办法
12万
查看次数

如何在服务器端发送和接收WebSocket消息?

  • 根据协议,如何使用WebSocket在服务器端发送和接收消息?

  • 当我将数据从浏览器发送到服务器时,为什么我在服务器上看到看似随机的字节?它以某种方式编码数据?

  • 框架如何在服务器→客户端和客户端→服务器方向上工作?

encoding protocols decoding websocket

82
推荐指数
6
解决办法
10万
查看次数

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

在Python中使用unicode()和encode()函数

我有一个路径变量编码问题并将其插入SQLite数据库.我尝试使用编码("utf-8")功能解决它,这没有帮助.然后我使用了unicode()函数,它给了我unicode类型.

print type(path)                  # <type 'unicode'>
path = path.replace("one", "two") # <type 'str'>
path = path.encode("utf-8")       # <type 'str'> strange
path = unicode(path)              # <type 'unicode'>
Run Code Online (Sandbox Code Playgroud)

最后我获得了unicode类型,但是当路径变量的类型为str时,我仍然存在相同的错误

sqlite3.ProgrammingError:除非使用可解释8位字节串的text_factory(如text_factory = str),否则不得使用8位字节串.强烈建议您只需将应用程序切换为Unicode字符串.

你能帮我解决这个错误并解释正确的用法encode("utf-8")unicode()功能吗?我经常和它搏斗.

编辑:

这个execute()语句引发了错误:

cur.execute("update docs set path = :fullFilePath where path = :path", locals())
Run Code Online (Sandbox Code Playgroud)

我忘了改变遇到同样问题的fullFilePath变量的编码,但我现在很困惑.我应该只使用unicode()编码("utf-8")还是两者都使用?

我不能用

fullFilePath = unicode(fullFilePath.encode("utf-8"))
Run Code Online (Sandbox Code Playgroud)

因为它引发了这个错误:

UnicodeDecodeError:'ascii'编解码器无法解码位置32中的字节0xc5:序数不在范围内(128)

Python …

python sqlite string unicode encoding

79
推荐指数
2
解决办法
25万
查看次数

fileReader.readAsBinaryString上传文件

尝试使用fileReader.readAsBinaryString通过AJAX将PNG文件上传到服务器,剥离代码(fileObject是包含我文件信息的对象);

var fileReader = new FileReader();

fileReader.onload = function(e) {
    var xmlHttpRequest = new XMLHttpRequest();
    //Some AJAX-y stuff - callbacks, handlers etc.
    xmlHttpRequest.open("POST", '/pushfile', true);
    var dashes = '--';
    var boundary = 'aperturephotoupload';
    var crlf = "\r\n";

    //Post with the correct MIME type (If the OS can identify one)
    if ( fileObject.type == '' ){
        filetype = 'application/octet-stream';
    } else {
        filetype = fileObject.type;
    }

    //Build a HTTP request to post the file
    var data = dashes + boundary + …
Run Code Online (Sandbox Code Playgroud)

javascript upload encoding filereader

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