Forums

This topic is locked

Replace %A0, %A20 with space

Posted 05 Jul 2003 08:47:00
1
has voted
05 Jul 2003 08:47:00 Dave Desormeaux posted:
Please help!!

When I pass URL data to a detail page, my spaces are being converted to symbols %A0.

This is the code in the reference page:

<A HREF="datepics.asp?<%= MM_keepURL & MM_joinChar(MM_keepURL) & "Date=" & fncFmtDate(rsDates.Fields.Item("Date".Value, "%B, %Y"%>">

When I pass it to the detail page, I get this in the URL window:

localhost/datepics.asp?Date=October,%A02002

I just want to get rid of the %20 and replace it with a space. I've tried using ascii characters (eg. "%B, %Y" but then get October,%A02002


Thanks!!!!



Note: I am using a javascript function to format the date to MM/YYYY. This is that code:

<%
Function fncGetDayOrdinal( _
byVal intDay _
)
' Accepts a day of the month as an integer and returns the
' appropriate suffix

Dim strOrd

Select Case intDay
Case 1, 21, 31
strOrd = "st"
Case 2, 22
strOrd = "nd"
Case 3, 23
strOrd = "rd"
Case Else
strOrd = "th"
End Select

fncGetDayOrdinal = strOrd
End Function ' fncGetDayOrdinal



Function fncFmtDate( _
byVal strDate, _
byRef strFormat _
)
' Accepts strDate as a valid date/time,
' strFormat as the output template.
' The function finds each item in the
' template and replaces it with the
' relevant information extracted from strDate

' Template items (example)
' %m Month as a decimal (02)
' %B Full month name (February)
' %b Abbreviated month name (Feb )
' %d Day of the month (23)
' %O Ordinal of day of month (eg st or rd or nd)
' %j Day of the year (54)
' %Y Year with century (1998)
' %y Year without century (98)
' %w Weekday as integer (0 is Sunday)
' %a Abbreviated day name (Fri)
' %A Weekday Name (Friday)
' %H Hour in 24 hour format (24)
' %h Hour in 12 hour format (12)
' %N Minute as an integer (01)
' %n Minute as optional if minute <> 0
' %S Second as an integer (55)
' %P AM/PM Indicator (PM)

On Error Resume Next

Dim intPosItem
Dim int12HourPart
Dim str24HourPart
Dim strMinutePart
Dim strSecondPart
Dim strAMPM

' Insert Month Numbers
strFormat = Replace(strFormat, "%m", _
DatePart("m", strDate), 1, -1, vbBinaryCompare)

' Insert non-Abbreviated Month Names
strFormat = Replace(strFormat, "%B", _
MonthName(DatePart("m", strDate), _
False), 1, -1, vbBinaryCompare)

' Insert Abbreviated Month Names
strFormat = Replace(strFormat, "%b", _
MonthName(DatePart("m", strDate), _
True), 1, -1, vbBinaryCompare)

' Insert Day Of Month
strFormat = Replace(strFormat, "%d", _
DatePart("d",strDate), 1, _
-1, vbBinaryCompare)

' Insert Day of Month Ordinal (eg st, th, or rd)
strFormat = Replace(strFormat, "%O", _
fncGetDayOrdinal(Day(strDate)), _
1, -1, vbBinaryCompare)

' Insert Day of Year
strFormat = Replace(strFormat, "%j", _
DatePart("y",strDate), 1, _
-1, vbBinaryCompare)

' Insert Long Year (4 digit)
strFormat = Replace(strFormat, "%Y", _
DatePart("yyyy",strDate), 1, _
-1, vbBinaryCompare)

' Insert Short Year (2 digit)
strFormat = Replace(strFormat, "%y", _
Right(DatePart("yyyy",strDate),2), _
1, -1, vbBinaryCompare)

' Insert Weekday as Integer (eg 0 = Sunday)
strFormat = Replace(strFormat, "%w", _
DatePart("w",strDate,1), 1, _
-1, vbBinaryCompare)

' Insert Abbreviated Weekday Name (eg Sun)
strFormat = Replace(strFormat, "%a", _
WeekDayName(DatePart("w",strDate,1),True), 1, _
-1, vbBinaryCompare)

' Insert non-Abbreviated Weekday Name
strFormat = Replace(strFormat, "%A", _
WeekDayName(DatePart("w",strDate,1),False), 1, _
-1, vbBinaryCompare)

' Insert Hour in 24hr format
str24HourPart = DatePart("h",strDate)
If Len(str24HourPart) < 2 then str24HourPart = "0" & _
str24HourPart
strFormat = Replace(strFormat, "%H", str24HourPart, 1, _
-1, vbBinaryCompare)

' Insert Hour in 12hr format
int12HourPart = DatePart("h",strDate) Mod 12
If int12HourPart = 0 then int12HourPart = 12
strFormat = Replace(strFormat, "%h", int12HourPart, 1, _
-1, vbBinaryCompare)

' Insert Minutes
strMinutePart = DatePart("n",strDate)
If Len(strMinutePart) < 2 then _
strMinutePart = "0" & strMinutePart
strFormat = Replace(strFormat, "%N", strMinutePart, _
1, -1, vbBinaryCompare)

' Insert Optional Minutes
If CInt(strMinutePart) = 0 then
strFormat = Replace(strFormat, "%n", "", 1, _
-1, vbBinaryCompare)
Else
If CInt(strMinutePart) < 10 then _
strMinutePart = "0" & strMinutePart
strMinutePart = ":" & strMinutePart
strFormat = Replace(strFormat, "%n", strMinutePart, _
1, -1, vbBinaryCompare)
End if

' Insert Seconds
strSecondPart = DatePart("s",strDate)
If Len(strSecondPart) < 2 then _
strSecondPart = "0" & strSecondPart
strFormat = Replace(strFormat, "%S", strSecondPart, 1, _
-1, vbBinaryCompare)

' Insert AM/PM indicator
If DatePart("h",strDate) >= 12 then
strAMPM = "PM"
Else
strAMPM = "AM"
End If

strFormat = Replace(strFormat, "%P", strAMPM, 1, _
-1, vbBinaryCompare)

fncFmtDate = strFormat

'If there is an error output its value
If err.Number <> 0 then
Response.Clear
Response.Write "ERROR " & err.Number & _
": fmcFmtDate - " & err.Description
Response.Flush
Response.End
End if
End Function ' fncFmtDate
%&gt;<font color=red></font id=red><font color=black></font id=black>

Replies

Replied 08 Jul 2003 14:40:30
08 Jul 2003 14:40:30 David Behan replied:
Those symbols are used to eliminate spaces and particular symbols from being put in the address bar. When you request them back into a variable, they return to what they should be. Why do you want to change them?

Look at the address of this page even:
www.dmxzone.com/forum/post.asp?method=TopicQuote&TOPIC_ID=24153&FORUM_ID=3&CAT_ID=2&Forum_Title=Dreamweaver+UltraDev&Topic_Title=Replace+%25A0%2C+%25A20+with+space

but if you were to request the forum title like so:

<font color=red>topic_title = Request.QueryString("Topic_Title"
Response.Write("topic_title"</font id=red>

you would get it back like so:

<font color=red>Replace %A0, %A20 with space</font id=red>

instead of:

<font color=red>Replace+%25A0%2C+%25A20+with+space</font id=red>

Regards,

Dave

________________________
WinXP : IIS 5.1 : StudioMX : ASP : VBScript
www.dynamic.ie

Edited by - beano on 08 Jul 2003 14:41:18
Replied 16 Jul 2003 18:13:06
16 Jul 2003 18:13:06 Dave Desormeaux replied:
You are absoutely correct.

Once you pointed this out, I realized it was really a question of differentiating between how the date was displayed on the page VS what was passed in a Query to the DB.

If you're interested, here's the page that was giving me problems, but now works fine:

www.d-squared.com/adventures/displaydates.asp

Thanks for the reply - it helped!!

Dave

Reply to this topic