为什么地址栏中的UTF-8Unicode和GET格式在C中有所不同?
我用C语言开发了一个简单的网页 我将获取url地址值,并使用strtok、strep检查它们为什么地址栏中的UTF-8Unicode和GET格式在C中有所不同?,c,unicode,utf-8,cgi,fastcgi,C,Unicode,Utf 8,Cgi,Fastcgi,我用C语言开发了一个简单的网页 我将获取url地址值,并使用strtok、strep检查它们 que=getenv("QUERY_STRING"); ... strcpy(val,strsep(&string,"=")); printf("%s<br>",val); 尝试使用不同的值: 可以使用DecodeQueryStringC中的函数轻松修复该问题 这是由Max Base编写的 尝试使用不同的值: 我还希望在用户手动修改URL(链接)时提供支持。 告诉我。我
que=getenv("QUERY_STRING");
...
strcpy(val,strsep(&string,"="));
printf("%s<br>",val);
尝试使用不同的值:
可以使用DecodeQueryStringC中的函数轻松修复该问题
这是由Max Base编写的
尝试使用不同的值:
我还希望在用户手动修改URL(链接)时提供支持。
告诉我。我不知道阿拉伯语如何,在希伯来语中有不同类型的编码。像UTF8和其他版本一样,没有涉及到细节,但是你检查过了吗?我在你的帖子中没有任何与此相关的内容 字符串
不解码为
۱
,而是和#1779代码>这是一个HTML实体,而不是UTF-8。您不应该使用decodeHtmlEntities
,而应该只使用decodeUrl
。同样,也有一些代码正在执行重定向,但做得太多。我在浏览器中添加了一些屏幕截图,您可以看到它们。当用户在页面中提交表单时,encodeUrl函数可以解决问题。但是如果用户手动更改链接并键入utf8。。。那么我无法修复。您尚未声明响应的字符集。。。默认为ISO 8859-1,您将获得。提示:内容类型:text/html;charset=UTF-8
通过内容类型:text/html解决;charset=UTF-8\r\n
,请更改答案文本以确认。感激的
identifier=%26%231777%3B
۱ => %26%231777%3B
۲ => %26%231778%3B
۳ => %26%231779%3B
۱۲۳ => %26%231777%3B%26%231778%3B%26%231779%3B
decodeUrl(val,val);
printf("Fix:%s<br>",val);
identifier=%DB%B1
۱ => %DB%B1
۲ => %DB%B2
۳ => %DB%B3
۱۲۳ => %DB%B1%DB%B2%DB%B3
%26%231779%3B