1

我制作了一个将数据发布到 ASP 脚本的 iPad 应用程序。然后数据以 UTF-8 格式存储在 MySQL 数据库中。今天,其中一位用户发布了出错的数据:

发布的数据:

Jeanette Sjösvärd, Uttke Renata, Håkan Giljam

log和db中保存的数据:

Jeanette Sjösvärd, Uttke Renata, Håkan Giljam

从数据库读取数据时,文本全是“Ã¥ ä ö”(应该是“å ä ö”)

日志还以百分比格式保存原始发布数据到达服务器的方式:

Jeanette%20Sj%C3%B6sv%C3%A4rd%2C%20Uttke%20Renata

从 ASP 页面再次发布所有数据(复制并粘贴该百分比编码块)时,数据将被保存而没有任何编码问题。

事实

  • 完整发布的数据约为 18kB
  • 所有 ASP 页面都包含<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>在顶部

问题/想法

  • 为什么 ASP 脚本根据发送者的不同以不同的方式读取数据?
  • 为什么它只发生了 100 次中的 1 次?
  • 是否有任何编码信息/应该与 POST 请求一起发送?
  • 它可能取决于数据中的某个特殊字符吗?
  • iPad 是否使用 UTF-8 以外的任何其他编码作为标准?(iPad 设置为瑞典语)
4

1 回答 1

0

编辑

找到了这个线程:什么决定了你从 HTTP POST 接收到的数据的编码?

将查看 post 请求的编码标头。但是我如何检测发布的数据是否不是 UTF-8 并在这种情况下进行转换呢?

这篇文章的后续:https ://stackoverflow.com/questions/15656710/how-to-detect-post-encoding-and-convert-to-utf-8-in-asp

于 2013-03-27T10:32:39.553 回答