Http 可以使用IS0-8859-1对任何值进行url编码吗?

Http 可以使用IS0-8859-1对任何值进行url编码吗?,http,character-encoding,webserver,Http,Character Encoding,Webserver,我原以为服务器希望URL编码为UTF-8,所以我总是将URL编码为UTF-8,但结果它希望URL编码为IS0-8859-1 任何值都可以使用IS0-8859-1进行url编码,即使包含中文、阿拉伯语和其他非拉丁字符,因为修复客户端比修复服务器要简单得多 从答案更新 所以我有点困惑,如果我的查询值是'Björk',我把它放在IE浏览器中,我得到了预期的结果,如果我把相同的值放在Firefox中,我得到了不正确的结果。我的理论是IE编码为iso8859,我的服务器预期收到的是iso8859,但fir

我原以为服务器希望URL编码为UTF-8,所以我总是将URL编码为UTF-8,但结果它希望URL编码为IS0-8859-1

任何值都可以使用IS0-8859-1进行url编码,即使包含中文、阿拉伯语和其他非拉丁字符,因为修复客户端比修复服务器要简单得多

从答案更新

所以我有点困惑,如果我的查询值是'Björk',我把它放在IE浏览器中,我得到了预期的结果,如果我把相同的值放在Firefox中,我得到了不正确的结果。我的理论是IE编码为iso8859,我的服务器预期收到的是iso8859,但firefox编码为utf8,而我的服务器总是预期iso8859解码错误并给出错误的结果

事实上,我确信这是正确的,因为如果我在客户端代码中按iso8859编码,我会得到正确的结果;如果我在UTF8中按urlencode编码,则会得到错误的结果。如果我根本不进行uriencode,那么服务器根本无法理解查询,所以您必须进行uriencode

因为我在寻找一个,我想这意味着任何东西都可以被编码为ISO88591。我意识到它只有一个字节(256个字符),但我认为在编码之前,uriencoding将字符转换为多个字节,但现在意识到ö实际上在IS0-8859中是字符214

因此,我想唯一的解决方案是让服务器使用UTF8,让客户端发送UTF8。没有要求在URI中使用任何特定的编码。但是,UTF-8是最好的选择。只是不要指望每个人都这么做

b) 否,ISO-8859-1只能表示256个不同的字符