Solved

nonEnglish in querystring

Posted on 2004-10-07
22
689 Views
Last Modified: 2008-02-01
Hi there
Suppose that I'm developing a search engine. I write this code for the first page:
=====================
search.htm
=====================
...
<form action="search.asp" method="GET">
<input type="text" name="keyword">
<input type="submit" value="  Search  ">
</form>
...


and this will be the very start point for the search.asp page, which just ensures that it can get the querystring! Here:
=====================
search.asp
=====================
...
<%
Response.Write Request.QueryString("keyword")
%>
...

Now. If I type such word in the search box: témpo
which has an accent on the "e", then submit the form, I will be sent to:
http://www.anydomain.com/search.asp?keyword=t%E9mpo
And the result of Response.Write command will be like this:
tmpo
And you see that %E9 standing for é has been omitted. This is what I don't want to happen.
Any solution is highly appreciated

Huji
0
Comment
Question by:huji
  • 11
  • 11
22 Comments
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247421
You can pass the values to an asp page by url with special charcters like "%_#fgf%234"

<%
bv=server.urlencode("desti_nation.asp")
va=server.urlencode("jeans")
%>

<a href="<%=bv%>?values=<%=va%>">click here</a>

we use request.querystring("values") in the destination asp page (desti_nation.asp) to read the values.

You can also use it like this

<a href="destination.asp?value= <%=Server.URLEncode("23,témpo,café) %>")enter</a>
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247425
alternately you could use the javascript escape() function which converts special characters into hexadecimal
0
 
LVL 14

Author Comment

by:huji
ID: 12247474
You have misunderstood the question my friend
I'm not looking for a way to perform a URLEncode task
Please read my question again.
Huji
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247481
ok this is what i tested -> it outputs t%E9mpo

<%
Response.write Server.URLEncode(Request.querystring("keyword"))
%>
0
 
LVL 14

Author Comment

by:huji
ID: 12247492
I'm checking it on my side. Wait online please
Huji
0
 
LVL 14

Author Comment

by:huji
ID: 12247509
No it didn't help!
I put that line on my side, and again get -> tmpo
No "E" is there'
Any idea?
Huji
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247603
ok try this in your ASP page ->

<%@LANGUAGE="JavaScript"%>
<%
var QueryVariable = new String( Request.QueryString("keyword") )
%>
<HTML>
The QueryString Value is: <%=QueryVariable%> <BR>
<%
if (QueryVariable != "")
      {
      QueryVariable=escape(QueryVariable)
%>

<%=QueryVariable%>

<%
      } //closing bracket for if statement.
%>
</HTML>
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247628
what sort of hosting do you have there? that coud be a factor. It worked on my end. Im using Server 2003, IIS 6.0. I also tested it on windows 2000 server IIS 5.0 AND Linux Server with Chilisoft ASP and both solutions worked
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247647
this link also confirms the solutions i gave you ->
http://www.kamath.com/codelibrary/cl006_url.asp
0
 
LVL 14

Author Comment

by:huji
ID: 12247648
Result:
The QueryString Value is: tmpo
tmpo
I am testing it on windows XP with IIS 5.0
You mean that you saved the above as a file named 1.asp and then browsed http://localhost/1.asp?keyword=t%E9mpo and it got témpo to you? Please reconfirm this.
Can you upload it somewhere for me please?
huji
0
 
LVL 14

Author Comment

by:huji
ID: 12247704
See, if I had t%E9mpo in my querystring, and wanted to change it to témpo then your solution was handy, but this is not what I'm looking for.
I say that I do not get tht encoded %E9 when I use request.querystring("keyword")
This is strange. I still ask you to upload your code somewhere for me.
Huji
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 
LVL 30

Accepted Solution

by:
VirusMinus earned 500 total points
ID: 12247845
yes i saved that bit of code as an ASP file, I'm assuming you did the same?

Heres a link to my ASP pages

First solution (server.URLencode) -> http://www.feralclothing.com.au/test2.asp?keyword=t%E9mpo
Second solution -> (javascript escape) -> http://www.feralclothing.com.au/test1.asp?keyword=t%E9mpo

Note, displaying the querystring without any escaping shows témpo

Try your ASP pages without submitting from the form by typing in the keyword témpo and t%E9mpo and see what happens?
0
 
LVL 14

Author Comment

by:huji
ID: 12247883
OK. I accept that it is working fine. I'm checking why it is not working on my side... Any idea?
Huji
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12247920
what browser are u using? try a diff one if u can.

Also are u using anything older than ASP 3.x?
0
 
LVL 14

Author Comment

by:huji
ID: 12247947
Well. I still have not understood why my THAT file didn't work. I deleted that file, and wrote the code again, in to a new file. And now it is working!!
Funny
Any ways, I appreciate your help. Though you have not found the answer to my question, I appreciate your help with the 500 points, and an A
Huji
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12248020
It is strange..wonder if its worth the trouble trying to replicate the problem ;)

But i guess if its working now just stick with it.

Glad to be of help.
0
 
LVL 14

Author Comment

by:huji
ID: 12251283
VirusMinus. I now know why it didn't work. It was becuase I used a codepage of 65001 which is for UTF-8, while the page of interest was to be shown in Arabics.
***********************
For others reference:
I wanted to have a page, which code show the arabics words sent to the search page in querystring, in correct arabic way, and at the same time, able to connect to an Access DB which has Arabic words inside, and read them correctly too ( not at lots of ? marks!) and then compare them, to perform a search thing.
The result of my study on this issue: Codepage must be set to 1256 (arabics) and also charset must be set to windows-1256 (arabics).
Here we go:

<%@language="VBscript" codepage="1256"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
...

***********************
Huji
0
 
LVL 14

Author Comment

by:huji
ID: 12251308
Although VirusMinus was not the one who finally found the answer, I decided to give him the point, because his working code made me create a new page, and then I noticed that the one working has no codepage assigned! So his work made me reach to the brilliant idea.
Thanks VirusMinus,
Huji
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12251540
nice.. min wain huji?
0
 
LVL 14

Author Comment

by:huji
ID: 12259377
Although EE has a trend of "one question per thread" but I want to ask a second question here in this thread: The very silly one:
What does "min wain" mean?!
Huji
0
 
LVL 30

Expert Comment

by:VirusMinus
ID: 12259447
i was trying my limited knowledge of arabic ;)

min wain ante .. where are you from.. right? sah?
0
 
LVL 14

Author Comment

by:huji
ID: 12262402
1)I am Iranian, not Arab.
2)As far as I know, the correct pronounciation is "min ain ant?"
3)I am doing this Arabic issue for somebody else. Albeit, since Farsi web design has some similarity to Arabic, in its character problems, the result of this question we answered here can be generalized to Farsi too.
Good bye
Huji
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

I have helped a lot of people on EE with their coding sources and have enjoyed near about every minute of it. Sometimes it can get a little tedious but it is always a challenge and the one thing that I always say is:  The Exchange of information …
I would like to start this tip/trick by saying Thank You, to all who said that this could not be done, as it forced me to make sure that it could be accomplished. :) To start, I want to make sure everyone understands the importance of utilizing p…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now