Posted on 2008-04-06 17:06:18 by S N

i have checked the access database. when i open the access table, there =
also i am finding the rectangular block whereever i expect apostrophe .

also i have started using server.htmlencode for retrieving values from =
the database. but it displays the new line characters and paragraph =
characters (<BR> and <p> notations) stored in the text field as such. =
meaning instead of using these characters as commands for new line it is =
displaying them as it is, ie as "<BR>" and "<p>". in this way the =
paragraph boundaries has gone.

please help me with the above two problems.

"Paul Randall" <paulr901@cableone.net> wrote in message =
news:OOTWT7fjIHA.4320@TK2MSFTNGP06.phx.gbl...
Thanks for posting one of your problematic characters. I think one of =
the problems is that a number of distinct concepts, such as charset, =
font, and locale, are being blurred together. At first you mentioned =
having problems with the single and double quote characters, and defined =
them as apostrophe character ' and double quote ". Recently you posted =
the Ã¢Â€=98 character, which I assume is what you meant by an =
apostrophe character. It certainly looks a lot like what I would call a =
single quote, but if you put my single quote ('), and your single quote =
together, you can see that they are different: (Ã¢Â€=98'). Well, =
maybe you can see the difference, and maybe you can't. It all depends =
on what font the characters are being displayed in. I think in general, =
if a font does not contain a glyph for a character, then it displays a =
square or rectangular box for that character. I think most fonts =
contain glyphs for all characters in the range Chr(32) to Chr(127). =
Many fonts contain glyphs for characters in the range Chr(128) to =
Chr(255) too. Many fonts also include glyphs for some characters in the =
range ChrW(256) to ChrW(65535), which are Unicode characters. My =
knowledge of Unicode is limited, so some of my terminology may not be =
technically correct, and I would appreciate being corrected.

Copy the code below into a .vbs file and run it. You will get two =
message boxes. The first message box will contain two lines:

Hello *'ÃŽÂ„Ã¢Â€=98* Unicode
ÃŽÂ„Ã¢Â€=98

The first line contains a mixture of what might be considered Unicode =
and non-Unicode characters. The three characters between the asterisks =
(*) might all be considered single quotes, but only the first one is =
Chr(39), the character I consider a single quote. The second one is =
ChrW(900), and the third one is your single quote, ChrW(8216).

The second line displays what is left of the first line after removing =
all characters whose AscW value is less than 255.

I included the ChrW(900) character because it illustrates how =
differently certain characters may be handled.

The second message box contains info about the two Unicode characters:

1 ÃŽÂ„ 63 ? 900 ÃŽÂ„
2 Ã¢Â€=98 145 Ã¢Â€=98 8216 Ã¢Â€=98

The six columns contain the following:
1) i (position within the string)
2) Mid(s, i, 1) the character at position i.
3) Asc(Mid(s, i, 1)) value of the character, sometimes and sometimes =
not.
4) Chr(Asc(Mid(s, i, 1))) Character associated with the reported Asc =
value.
5) AscW(Mid(s, i, 1)) Unicode value of the character.
6) ChrW(AscW(Mid(s, i, 1))) Character associated with the reported =
AscW value.

The Asc function almost always returns an 8-bit value, and AscW =
returns a 16-bit value. For certain Locales, Asc returns the same =
16-bit value as AscW. See the scripting help file for info on the =
GetLocale and SetLocale functions. The thing to note is that depending =
on Locale, for some Unicode characters, the Asc function returns returns =
63, a value that corresponds to a question mark, and for others it =
returns a value under 256 that displays the same character as is =
displayed by the Unicode character. So ChrW(900) maps to a question =
mark but ChrW(8216) maps to Chr(145). I don't have any examples that =
would produce the inverted question mark you talked about in your early =
posts.

Your posts talk about a number of code pages and charsets, like 65001 =
and utf-8 and iso-8859-1. I believe that charset 65001 represents all =
characters as fixed-length two-byte values, so it can handle all the =
thousands of standard Unicode characters. UTf-8 is a variable length =
encoding that uses one to four bytes to represent a character. It can =
handle all the characters that charset 65001 can handle. Charset =
iso-8859-1 can only handle 256 8-bit characters.

I think you should build a little standalone VBScript that displays =
many of your problematic characters in something like the six columns I =
did above, and post the result. Perhaps we can figure out a way to fix =
the problem after you show us what the problem is. It might help if you =
tell us your Locale number too. Control-C can be used to copy the text =
from a message box.

Function sKeepOnlyUnicode(sAnyString)
'Returns sAnyString with only Unicode [actually, all
' characters outside the range ChrW(0) to
' ChrW(255)] being kept. VBScript strings are made
' up of 16-bit characters so they can handle a
' lot of Unicode stuff.
With New RegExp
.Global =3D True
.Pattern =3D "[\u0000-\u00FF]"
sKeepOnlyUnicode =3D .Replace(sAnyString, "")
End With
End Function 'sKeepOnlyUnicode(sAnyString)

-Paul Randall
"S N" <uandme72@yahoo.com> wrote in message =
news:%23m$1focjIHA.748@TK2MSFTNGP04.phx.gbl...
i changed the codepage tp 65001 and charset to utf-8, then the =
question mark ? showing earlier, has changed to the rectangle as shown =
below.
Ã¢Â€=98
the database field also shows the same character stored in it.
please help.

"Anthony Jones" <Ant@yadayadayada.com> wrote in message =
news:ejiWc1tiIHA.5780@TK2MSFTNGP06.phx.gbl...
My guess is that they are not " " but are Ã¢Â€=98 Ã¢Â€=9C =
Ã¢Â€=9D typically cut'n'pasted in from Microsoft Word.

These are still in the Windows-1252 range of characters but are =
not strictly in the iso-8859-1 set.

Don't use http-equiv meta tags use real headers instead.

IOW ditch the meta tags and include this:-

<%Response.CharSet =3D "Windows-1252"%>

I'm not hopeful because you are probably using IE and IE will =
treat ISO-8859-1 as Windows-1252 anyway.

Always use Server.HtmlEncode on values retrieved from the =
Database. Stop mucking about with any other approach.

If that doesn't work view the html source from the browser. What =
is the server actually sending.

Another alternative is stop using Windows-1252.

Save your pages as UTF-8 change the codepage at the top of the =
page to 65001 and include Response.CharSet =3D "UTF-8" in your page.

BTW, Have you looked at the field content directly using the DB =
management tool?

--=20
Anthony Jones - MVP ASP/ASP.NET
"S N" <uandme72@yahoo.com> wrote in message =
news:OgWpL$piIHA.4344@TK2MSFTNGP03.phx.gbl...
i am attaching the sample code. actually i am printing from a =
field in access database. the text entered in the database contains =
single quotes and double quotes. when i try to print them using =
response.write, the double quotes are getting replaced with question =
marks. i have tried the method of=20

DataPrep =3D Replace(DataPrep, """", "&quot;")

still problem remains.

i also tried
response.write(server.htmlencode(myrs(3))) ' where myrs is =
adodb recordset

"Anthony Jones" <Ant@yadayadayada.com> wrote in message =
news:%23jGo1GRiIHA.5088@TK2MSFTNGP02.phx.gbl...
> "Bob Barrows [MVP]" <reb01501@NOyahoo.SPAMcom> wrote in =
message
> news:%233n2yuBiIHA.4744@TK2MSFTNGP06.phx.gbl...
>> Daniel Crichton wrote:
>> > &apos; and &quot; are HTML entities - these are converted =
by web
>> > browsers into ' and " respectively.
>> >
>> > If you just want to print the literal characters, that's =
easy enough:
>> >
>> > Response.Write """"
>> >
>> > will print a single " (there are 4 " in that line, the two =
outer ones
>> > are the string containers, the two inners generate the =
single " as
>> > doubling them up inside a string turns them into a literal =
instead).
>> >
>> > another example
>> >
>> > Response.Write "<a =
href=3D""http://myurl.com/apage.asp"">This is a
>> > link</a>"
>> > Notice how you just double up the quotation marks.
>> >
>> > For an apostrophe you don't need to do anything special:
>> >
>> > Response.Write "They're not here"
>> >
>> > So what problem are you having with quotes and apostrophes?
>> >
>>
>> From the original post: "my code using response.write =
replaces " character
>> with question
>> mark"
>>
>> It's most likely a codepage problem. I've been holding back =
from replying
> to
>> this because Anthony typically has the most reliable advice =
for these
>> situations.
>>
>=20
> Thanks for the vote of confidence Bob but it baffles me. ;)
>=20
> Since " is within the lower ascii range 0-127 the only =
encoding that could
> screw this up would be UTF-16. But if the browser thought it =
was getting
> say Windows-1252 and yet the server was encoding to UTF-16 (or =
vice versa)
> the content would be completely garbled.
>=20
> I suspect that what the OP thinks is happening and what =
actually is are very
> different. Like Dan says I think we would need to see some =
actual code to
> make sense of this.
>=20
> --=20
> Anthony Jones - MVP ASP/ASP.NET
>=20
>
------=_NextPart_000_0022_01C89825.DE08F500
Content-Type: text/html;
charset="Utf-8"
Content-Transfer-Encoding: quoted-printable

Ã¯Â»=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dutf-8">
<META content=3D"MSHTML 6.00.2900.3157" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>i have checked the access database. =
when i open the=20
access table, there also i am finding the rectangular block =
whereever&nbsp;i=20
expect apostrophe .</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>also i have started using =
server.htmlencode for=20
retrieving values from the database. but it displays the new line =
characters and=20
paragraph characters (&lt;BR&gt; and &lt;p&gt; notations) stored in the =
text=20
field as such. meaning instead of using these characters as commands for =
new=20
line it is displaying them as it is, ie as "&lt;BR&gt;" and "&lt;p&gt;". =
in this=20
way the paragraph boundaries has gone.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>please help me with the above two=20
problems.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"Paul Randall" &lt;<A=20
href=3D"mailto:paulr901@cableone.net">paulr901@cableone.net</A>&gt; =
wrote in=20
message <A=20
=
href=3D"news:OOTWT7fjIHA.4320@TK2MSFTNGP06.phx.gbl">news:OOT WT7fjIHA.4320=
@TK2MSFTNGP06.phx.gbl</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>Thanks for posting one of your =
problematic=20
characters.&nbsp; I think one of the problems is that a number of =
distinct=20
concepts, such as charset, font, and locale, are being blurred =
together.&nbsp;=20
At first you mentioned having problems with the single and double =
quote=20
characters, and defined them as apostrophe character ' and double =
quote=20
".&nbsp; Recently you posted the Ã¢Â€=98 character, which I assume =
is what you meant=20
by an apostrophe character.&nbsp; It certainly looks a lot like what I =
would=20
call a single quote, but if you put my single quote ('), and your =
single quote=20
together, you can see that they are different: (Ã¢Â€=98').&nbsp; =
Well, maybe you can=20
see the difference, and maybe you can't.&nbsp; It all depends on what =
font the=20
characters are being displayed in.&nbsp; I think in general, if a font =
does=20
not contain a glyph for a character, then it displays a square or =
rectangular=20
box for that character.&nbsp; I think most fonts contain glyphs for =
all=20
characters in the range Chr(32) to Chr(127).&nbsp; Many fonts contain =
glyphs=20
for characters in the range Chr(128) to Chr(255) too.&nbsp; Many fonts =
also=20
include glyphs for some characters in the range ChrW(256) to =
ChrW(65535),=20
which are Unicode characters.&nbsp; My knowledge of Unicode is =
limited, so=20
some of my terminology may not be technically correct, and I would =
appreciate=20
being corrected.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Copy the code below into a .vbs file =
and run=20
it.&nbsp; You will get two message boxes.&nbsp; The first message box =
will=20
contain two lines:</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Hello *'ÃŽÂ„Ã¢Â€=98* =
Unicode</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>ÃŽÂ„Ã¢Â€=98</FONT></DIV>
<DIV><FONT face=3DArial size=3D2><BR>The first line contains a mixture =
of what=20
might be considered Unicode and non-Unicode characters.&nbsp; The =
three=20
characters between the asterisks (*) might all be considered single =
quotes,=20
but only the first one is Chr(39), the character I consider a single=20
quote.&nbsp; The second one is ChrW(900), and the third one is your =
single=20
quote, ChrW(8216).</DIV>
<DIV>&nbsp;</DIV>
<DIV>The second line displays what is left of the first line after =
removing=20
all characters whose AscW value is less than 255.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I included the ChrW(900) character because it illustrates how =
differently=20
certain characters may be handled.</DIV>
<DIV>&nbsp;</DIV>
<DIV>The second message box contains info about the two Unicode=20
characters:</DIV>
<DIV>&nbsp;</DIV>
<DIV>1&nbsp;ÃŽÂ„&nbsp;63&nbsp;?&nbsp;900&nbsp;ÃŽÂ„</DIV>
=
<DIV>2&nbsp;Ã¢Â€=98&nbsp;145&nbsp;Ã¢Â€=98&nbsp;8216&nbsp;Ã¢Â€=98</D=
IV>
<DIV>&nbsp;</DIV>
<DIV>The six columns contain the following:<BR>1) i (position within =
the=20
string)<BR>2) Mid(s, i, 1) the character at position i.<BR>3) =
Asc(Mid(s, i,=20
1)) value of the character, sometimes and sometimes not.<BR>4) =
Chr(Asc(Mid(s,=20
i, 1))) Character associated with the reported Asc value.<BR>5) =
AscW(Mid(s, i,=20
1)) Unicode value of the character.<BR>6) ChrW(AscW(Mid(s, i, 1))) =
Character=20
associated with the reported AscW value.</DIV>
<DIV>&nbsp;</DIV>
<DIV>The Asc function almost always returns an 8-bit value, and AscW =
returns a=20
16-bit value.&nbsp; For certain Locales, Asc returns the same 16-bit =
value as=20
AscW.&nbsp; See the scripting help file for info on the GetLocale and=20
SetLocale functions.&nbsp; The thing to note is that depending on =
Locale, for=20
some Unicode characters, the Asc function returns returns 63, a value =
that=20
corresponds to a question mark, and for others it returns a value =
under 256=20
that displays the same character as is displayed by the Unicode=20
character.&nbsp; So ChrW(900) maps to a question mark but ChrW(8216) =
maps to=20
Chr(145).&nbsp; I don't have any examples that would produce the =
inverted=20
question mark you talked about in your early posts.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Your posts talk about a number of code pages and charsets, like =
65001 and=20
utf-8 and iso-8859-1.&nbsp; I believe that charset 65001 represents =
all=20
characters as fixed-length two-byte values, so it can handle all the =
thousands=20
of standard Unicode characters. UTf-8 is a variable length encoding =
that uses=20
one to four bytes to represent a character.&nbsp; It can handle all =
the=20
characters that charset 65001 can handle.&nbsp; Charset iso-8859-1 can =
only=20
handle 256 8-bit characters.</DIV>
<DIV>&nbsp;</DIV>
<DIV>I think you should build a little standalone VBScript that =
displays many=20
of your problematic characters in something like the six columns I did =
above,=20
and post the result.&nbsp; Perhaps we can figure out a way to fix the =
problem=20
after you show us what the problem is.&nbsp; It might help if you tell =
us your=20
Locale number too.&nbsp; Control-C can be used to copy the text from a =
message=20
box.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Option Explicit<BR>Dim i, j, s, sMsg<BR>s =3D "Hello *'" &amp; =
ChrW(900)=20
&amp; "Ã¢Â€=98* Unicode"<BR>msgbox s &amp; vbcrlf &amp; =
sKeepOnlyUnicode(s)<BR>s =
sKeepOnlyUnicode(s)</DIV>
<DIV>&nbsp;</DIV>
<DIV>For i =3D 1 To Len(s)<BR>&nbsp;sMsg =3D sMsg &amp; i &amp; vbTab =
&amp; Mid(s,=20
i, 1) &amp; vbTab &amp; _<BR>&nbsp;&nbsp;Asc(Mid(s, i, 1)) &amp; vbTab =
&amp;=20
Chr(Asc(Mid(s, i, 1))) &amp; vbTab &amp; _<BR>&nbsp;&nbsp;AscW(Mid(s, =
i, 1))=20
&amp; vbTab &amp; ChrW(AscW(Mid(s, i, 1))) &amp;=20
vbCrLf<BR>Next&nbsp;'i<BR>MsgBox sMsg</DIV>
<DIV>&nbsp;</DIV>
<DIV>Function sKeepOnlyUnicode(sAnyString)<BR>'Returns sAnyString with =
only=20
Unicode [actually, all<BR>'&nbsp;characters outside the range ChrW(0)=20
to<BR>'&nbsp;ChrW(255)] being kept.&nbsp; VBScript strings are=20
made<BR>'&nbsp;up of 16-bit characters so they can handle =
a<BR>'&nbsp;lot of=20
Unicode stuff.<BR>With New RegExp<BR>&nbsp;.Global =3D =
True<BR>&nbsp;.Pattern =
"[\u0000-\u00FF]"<BR>&nbsp;sKeepOnlyUnicode =3D .Replace(sAnyString, =
"")<BR>End=20
With<BR>End Function&nbsp;'sKeepOnlyUnicode(sAnyString)<BR>
<DIV>&nbsp;</DIV>
<DIV>-Paul Randall</DIV></FONT></DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"S N" &lt;<A=20
href=3D"mailto:uandme72@yahoo.com">uandme72@yahoo.com</A>&gt; wrote =
in message=20
<A=20
=
href=3D"news:%23m$1focjIHA.748@TK2MSFTNGP04.phx.gbl">news:%2 3m$1focjIHA.7=
48@TK2MSFTNGP04.phx.gbl</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>i changed the codepage tp 65001 and =
charset to=20
utf-8, then the question mark ? showing earlier, has changed to the=20
rectangle as shown below.</FONT></DIV>
<DIV>Ã¢Â€=98</DIV>
<DIV><FONT face=3DArial size=3D2>the database field also shows the =
same=20
character stored in it.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>please help.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV>"Anthony Jones" &lt;<A=20
href=3D"mailto:Ant@yadayadayada.com">Ant@yadayadayada.com</A>&gt; =
wrote in=20
message <A=20
=
href=3D"news:ejiWc1tiIHA.5780@TK2MSFTNGP06.phx.gbl">news:eji Wc1tiIHA.5780=
@TK2MSFTNGP06.phx.gbl</A>...</DIV>
<BLOCKQUOTE dir=3Dltr=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV><FONT size=3D2>My guess is that they are not " " but are =
<SPAN=20
style=3D"FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; =
mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-GB; =
mso-fareast-language: EN-GB; mso-bidi-language: AR-SA">Ã¢Â€Â˜
Ã¢Â€=9C Ã¢Â€=9D typically cut'n'pasted in from Microsoft =
Word.</SPAN></FONT></DIV>
<DIV><FONT size=3D2></FONT><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>These are still in the Windows-1252 range of =
characters=20
but are not strictly in the iso-8859-1 set.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Don't use http-equiv meta tags use real =
headers=20
instead.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>IOW ditch the meta tags and include =
this:-</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>&lt;%Response.CharSet =3D =
"Windows-1252"%&gt;</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>I'm not hopeful because you are probably using =
IE and IE=20
will treat ISO-8859-1 as Windows-1252 anyway.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Always use Server.HtmlEncode on values =
retrieved from=20
the Database.&nbsp; Stop mucking about with any other=20
approach.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>If that doesn't work view the html source from =
the=20
browser.&nbsp; What is the server actually sending.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Another alternative is stop using=20
Windows-1252.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>Save your pages as UTF-8 change the codepage =
at the top=20
of the page to 65001 and include Response.CharSet =3D "UTF-8" in =
your=20
page.</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2>BTW, Have you looked at the field content =
directly using=20
the DB management tool?</FONT></DIV>
<DIV><FONT size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT size=3D2></FONT><FONT size=3D2></FONT><FONT =
size=3D2></FONT><FONT=20
size=3D2></FONT><FONT size=3D2></FONT><BR>-- <BR>Anthony Jones - =
MVP=20
ASP/ASP.NET</DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV>"S N" &lt;<A=20
href=3D"mailto:uandme72@yahoo.com">uandme72@yahoo.com</A>&gt; =
wrote in=20
message <A=20
=
href=3D"news:OgWpL$piIHA.4344@TK2MSFTNGP03.phx.gbl">news:OgW pL$piIHA.4344=
@TK2MSFTNGP03.phx.gbl</A>...</DIV>
<DIV><FONT face=3DArial size=3D2>i am attaching the sample code. =
actually i=20
am printing from a field in access database. the text entered in =
the=20
database contains single quotes and double quotes. when i try to =
print=20
them using response.write, the double quotes are getting =
replaced with=20
question marks. i have tried the method of </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><STRONG>DataPrep =3D =
Replace(DataPrep, """",=20
"&amp;quot;")</STRONG></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>still problem =
remains.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>i also tried</FONT></DIV>
<DIV><FONT face=3DArial=20
=
size=3D2><STRONG>response.write(server.htmlencode(myrs(3)))&nbsp;&nbsp; =
'=20
where myrs is adodb recordset</STRONG></FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>still the problem =
remains</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>i am also attaching the header =
lines from=20
my asp page</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><STRONG>&lt;!DOCTYPE HTML =
PUBLIC=20
"-//W3C//DTD HTML 4.01 =
Transitional//EN"&gt;<BR>&lt;</STRONG></FONT><A=20
href=3D'mailto:%@LANGUAGE=3D"VBSCRIPT'><FONT face=3DArial=20
size=3D2><STRONG>%@LANGUAGE=3D"VBSCRIPT</STRONG></FONT></A><FONT =
face=3DArial=20
size=3D2><STRONG>" =
CODEPAGE=3D"1252"%&gt;<BR></STRONG></FONT></DIV>
<DIV><FONT face=3DArial =
size=3D2><STRONG></STRONG></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial=20
size=3D2><STRONG>&lt;HTML&gt;&lt;HEAD&gt;<BR>&lt;meta=20
http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Diso-8859-1"=20
/&gt;<BR>&lt;meta http-equiv=3D"Content-Language" =
content=3D"en-us"=20
/&gt;</STRONG><BR></FONT></DIV>
<DIV><FONT face=3DArial size=3D2>the problem is still not=20
solved</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>please help</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>"Anthony Jones" &lt;</FONT><A=20
href=3D"mailto:Ant@yadayadayada.com"><FONT face=3DArial=20
size=3D2>Ant@yadayadayada.com</FONT></A><FONT face=3DArial =
size=3D2>&gt; wrote=20
in message </FONT><A=20
href=3D"news:%23jGo1GRiIHA.5088@TK2MSFTNGP02.phx.gbl"><FONT =
face=3DArial=20
=
size=3D2>news:%23jGo1GRiIHA.5088@TK2MSFTNGP02.phx.gbl</FONT></A><FONT=20
face=3DArial size=3D2>...</FONT></DIV><FONT face=3DArial =
size=3D2>&gt; "Bob=20
Barrows [MVP]" &lt;</FONT><A=20
href=3D"mailto:reb01501@NOyahoo.SPAMcom"><FONT face=3DArial=20
size=3D2>reb01501@NOyahoo.SPAMcom</FONT></A><FONT face=3DArial =
size=3D2>&gt;=20
wrote in message<BR>&gt; </FONT><A=20
href=3D"news:%233n2yuBiIHA.4744@TK2MSFTNGP06.phx.gbl"><FONT =
face=3DArial=20
=
size=3D2>news:%233n2yuBiIHA.4744@TK2MSFTNGP06.phx.gbl</FONT></A><FONT=20
face=3DArial size=3D2>...<BR>&gt;&gt; Daniel Crichton =
wrote:<BR>&gt;&gt;=20
&gt; &amp;apos; and &amp;quot; are HTML entities - these are =
converted=20
by web<BR>&gt;&gt; &gt; browsers into ' and " =
respectively.<BR>&gt;&gt;=20
&gt;<BR>&gt;&gt; &gt; If you just want to print the literal =
characters,=20
that's easy enough:<BR>&gt;&gt; &gt;<BR>&gt;&gt; &gt; =
Response.Write=20
""""<BR>&gt;&gt; &gt;<BR>&gt;&gt; &gt; will print a single " =
(there are=20
4 " in that line, the two outer ones<BR>&gt;&gt; &gt; are the =
string=20
containers, the two inners generate the single " as<BR>&gt;&gt; =
&gt;=20
doubling them up inside a string turns them into a literal=20
instead).<BR>&gt;&gt; &gt;<BR>&gt;&gt; &gt; another =
example<BR>&gt;&gt;=20
&gt;<BR>&gt;&gt; &gt; Response.Write "&lt;a href=3D""</FONT><A=20
href=3D'http://myurl.com/apage.asp"">This'><FONT face=3DArial=20
size=3D2>http://myurl.com/apage.asp""&gt;This</FONT></A><FONT =
face=3DArial=20
size=3D2> is a<BR>&gt;&gt; &gt; link&lt;/a&gt;"<BR>&gt;&gt; &gt; =
Notice=20
how you just double up the quotation marks.<BR>&gt;&gt; =
&gt;<BR>&gt;&gt;=20
&gt; For an apostrophe you don't need to do anything=20
special:<BR>&gt;&gt; &gt;<BR>&gt;&gt; &gt; Response.Write =
"They're not=20
here"<BR>&gt;&gt; &gt;<BR>&gt;&gt; &gt; So what problem are you =
having=20
with quotes and apostrophes?<BR>&gt;&gt; =
&gt;<BR>&gt;&gt;<BR>&gt;&gt;=20
From the original post: "my code using response.write replaces " =

character<BR>&gt;&gt; with question<BR>&gt;&gt;=20
mark"<BR>&gt;&gt;<BR>&gt;&gt; It's most likely a codepage =
problem. I've=20
been holding back from replying<BR>&gt; to<BR>&gt;&gt; this =
because=20
Anthony typically has the most reliable advice for =
these<BR>&gt;&gt;=20
situations.<BR>&gt;&gt;<BR>&gt; <BR>&gt; Thanks for the vote of=20
confidence Bob but it baffles me.&nbsp; ;)<BR>&gt; <BR>&gt; =
Since " is=20
within the lower ascii range 0-127 the only encoding that =
could<BR>&gt;=20
screw this up would be UTF-16.&nbsp; But if the browser thought =
it was=20
getting<BR>&gt; say Windows-1252 and yet the server was encoding =
to=20
UTF-16 (or vice versa)<BR>&gt; the content would be completely=20
garbled.<BR>&gt; <BR>&gt; I suspect that what the OP thinks is =
happening=20
and what actually is are very<BR>&gt; different.&nbsp; Like Dan =
says I=20
think we would need to see some actual code to<BR>&gt; make =
sense of=20
this.<BR>&gt; <BR>&gt; -- <BR>&gt; Anthony Jones - MVP=20
ASP/ASP.NET<BR>&gt; <BR>&gt;</FONT>=20
</BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>

#2: Re: printing character " and " in asp using vbscript

Posted on 2008-04-06 22:37:44 by Anthony Jones

>i have checked the access database. when i open the access table,
>there also i am finding the rectangular block whereever i expect apostrophe
..
>also i have started using server.htmlencode for retrieving values from the
>database. but it displays the new line characters and paragraph characters
>(<BR> and <p> notations) stored in the text field as such. meaning instead
of
>using these characters as commands for new line it is displaying them as
it is,
>ie as "<BR>" and "<p>". in this way the paragraph boundaries has gone.

If access is showing the wrong character that indicates the data is corrupt.

If the field contains HTML (which it appears it does if it has <br> and <p>
elements that you expect to be honors) then you should not be using
Server.HTMLEncode. It has to be assumed that a field containing HTML is
already HTML encoded.

This is a long thread, I can't remember if you indicated how the data
arrived in the DB in the first place.

#3: Re: printing character " and " in asp using vbscript

Posted on 2008-04-06 22:49:44 by S N

i had copied the data from a word file and using control-c i had pasted it
into a richtext textbox in my asp form.

also please tell me how to ensure that regardless of whether the data is
html encoded or not, my server.htmlencode should work alright.

"Anthony Jones" <Ant@yadayadayada.com> wrote in message
news:expbSYCmIHA.1208@TK2MSFTNGP05.phx.gbl...
> >i have checked the access database. when i open the access table,
>>there also i am finding the rectangular block whereever i expect
>>apostrophe
> .
>>also i have started using server.htmlencode for retrieving values from the
>>database. but it displays the new line characters and paragraph characters
>>(<BR> and <p> notations) stored in the text field as such. meaning instead
> of
>>using these characters as commands for new line it is displaying them as
> it is,
>>ie as "<BR>" and "<p>". in this way the paragraph boundaries has gone.
>
> If access is showing the wrong character that indicates the data is
> corrupt.
>
> If the field contains HTML (which it appears it does if it has <br> and
> <p>
> elements that you expect to be honors) then you should not be using
> Server.HTMLEncode. It has to be assumed that a field containing HTML is
> already HTML encoded.
>
> This is a long thread, I can't remember if you indicated how the data
> arrived in the DB in the first place.
>
> --
> Anthony Jones - MVP ASP/ASP.NET
>
>

#4: Re: printing character " and " in asp using vbscript

Posted on 2008-04-07 08:56:15 by Paxtonend

> "Anthony Jones" <Ant@yadayadayada.com> wrote in message
> news:expbSYCmIHA.1208@TK2MSFTNGP05.phx.gbl...
>> >i have checked the access database. when i open the access table,
>>>there also i am finding the rectangular block whereever i expect
>>>apostrophe
>> .
>>>also i have started using server.htmlencode for retrieving values from
>>>the
>>>database. but it displays the new line characters and paragraph
>>>characters
>>>(<BR> and <p> notations) stored in the text field as such. meaning
>>>instead
>> of
>>>using these characters as commands for new line it is displaying them as
>> it is,
>>>ie as "<BR>" and "<p>". in this way the paragraph boundaries has gone.
>>
>> If access is showing the wrong character that indicates the data is
>> corrupt.
>>
>> If the field contains HTML (which it appears it does if it has <br> and
>> <p>
>> elements that you expect to be honors) then you should not be using
>> Server.HTMLEncode. It has to be assumed that a field containing HTML is
>> already HTML encoded.
>>
>> This is a long thread, I can't remember if you indicated how the data
>> arrived in the DB in the first place.
>>
>> --
>> Anthony Jones - MVP ASP/ASP.NET
>>
>>
>
>
>i had copied the data from a word file and using control-c i had pasted it
>into a richtext textbox in my asp form.
>
> also please tell me how to ensure that regardless of whether the data is
> html encoded or not, my server.htmlencode should work alright.
>
>

I haven't read the whole thread, but pasting directly from Word into a rich
text box is asking for trouble. I recommend pasting from Word into Notepad,
then taking the result and pasting it into the Rich text box. Word
sometimes does odd things with what should be "double quotes". And it
retains a whole load of Word-specific formatting - often over-riding your
carefully crafted css.

#5: Re: printing character " and " in asp using vbscript

Posted on 2008-04-07 18:54:27 by S N

also please tell me how to ensure that regardless of whether the data is
html encoded or not, my server.htmlencode should work alright.

"Mike Brind [MVP]" <paxtonend@hotmail.com> wrote in message
news:OtkF6xHmIHA.1680@TK2MSFTNGP06.phx.gbl...
>
> "S N" <uandme72@yahoo.com> wrote in message
> news:%23YLk4eCmIHA.1188@TK2MSFTNGP04.phx.gbl...
>
>> "Anthony Jones" <Ant@yadayadayada.com> wrote in message
>> news:expbSYCmIHA.1208@TK2MSFTNGP05.phx.gbl...
>>> >i have checked the access database. when i open the access table,
>>>>there also i am finding the rectangular block whereever i expect
>>>>apostrophe
>>> .
>>>>also i have started using server.htmlencode for retrieving values from
>>>>the
>>>>database. but it displays the new line characters and paragraph
>>>>characters
>>>>(<BR> and <p> notations) stored in the text field as such. meaning
>>>>instead
>>> of
>>>>using these characters as commands for new line it is displaying them
>>>>as
>>> it is,
>>>>ie as "<BR>" and "<p>". in this way the paragraph boundaries has gone.
>>>
>>> If access is showing the wrong character that indicates the data is
>>> corrupt.
>>>
>>> If the field contains HTML (which it appears it does if it has <br> and
>>> <p>
>>> elements that you expect to be honors) then you should not be using
>>> Server.HTMLEncode. It has to be assumed that a field containing HTML is
>>> already HTML encoded.
>>>
>>> This is a long thread, I can't remember if you indicated how the data
>>> arrived in the DB in the first place.
>>>
>>> --
>>> Anthony Jones - MVP ASP/ASP.NET
>>>
>>>
>>
>>
>>i had copied the data from a word file and using control-c i had pasted it
>>into a richtext textbox in my asp form.
>>
>> also please tell me how to ensure that regardless of whether the data is
>> html encoded or not, my server.htmlencode should work alright.
>>
>>
>
> I haven't read the whole thread, but pasting directly from Word into a
> rich text box is asking for trouble. I recommend pasting from Word into
> Notepad, then taking the result and pasting it into the Rich text box.
> Word sometimes does odd things with what should be "double quotes". And
> it retains a whole load of Word-specific formatting - often over-riding
> your carefully crafted css.
>
> --
> Mike Brind
> Microsoft MVP - ASP/ASP.NET
>

#6: Re: printing character " and " in asp using vbscript

Posted on 2008-04-07 19:15:36 by Adrienne Boswell

>
>
> "Anthony Jones" <Ant@yadayadayada.com> wrote in message
> news:expbSYCmIHA.1208@TK2MSFTNGP05.phx.gbl...
>> >i have checked the access database. when i open the access table,
>>>there also i am finding the rectangular block whereever i expect
>>>apostrophe
>> .
>>>also i have started using server.htmlencode for retrieving values
>>>from the database. but it displays the new line characters and
>>>paragraph characters (<BR> and <p> notations) stored in the text
>>>field as such. meaning instead
>> of
>>>using these characters as commands for new line it is displaying
>>>them as
>> it is,
>>>ie as "<BR>" and "<p>". in this way the paragraph boundaries has
>>>gone.
>>
>> If access is showing the wrong character that indicates the data is
>> corrupt.
>>
>> If the field contains HTML (which it appears it does if it has <br>
>> and <p>
>> elements that you expect to be honors) then you should not be using
>> Server.HTMLEncode. It has to be assumed that a field containing HTML
>> is already HTML encoded.
>>
>> This is a long thread, I can't remember if you indicated how the data
>> arrived in the DB in the first place.
>>
> i had copied the data from a word file and using control-c i had
> pasted it into a richtext textbox in my asp form.
>
> also please tell me how to ensure that regardless of whether the data
> is html encoded or not, my server.htmlencode should work alright.

I would suggest using a client side script to ensure the data pasted
from Word is going in correctly. Word is notorious for really bad,
bloated markup. Google for WYSIWYG textarea - I like the one from The
Man in Blue at [http://www.themaninblue.com/experiment/widgEditor/].

--
Adrienne Boswell at Home
Arbpen Web Site Design Services
http://www.cavalcade-of-coding.info
Please respond to the group so others can share

#7: Re: printing character " and " in asp using vbscript

Posted on 2008-04-07 21:27:27 by Paxtonend

> "Mike Brind [MVP]" <paxtonend@hotmail.com> wrote in message
> news:OtkF6xHmIHA.1680@TK2MSFTNGP06.phx.gbl...
>>
>> "S N" <uandme72@yahoo.com> wrote in message
>> news:%23YLk4eCmIHA.1188@TK2MSFTNGP04.phx.gbl...
>>
>>> "Anthony Jones" <Ant@yadayadayada.com> wrote in message
>>> news:expbSYCmIHA.1208@TK2MSFTNGP05.phx.gbl...
>>>> >i have checked the access database. when i open the access table,
>>>>>there also i am finding the rectangular block whereever i expect
>>>>>apostrophe
>>>> .
>>>>>also i have started using server.htmlencode for retrieving values from
>>>>>the
>>>>>database. but it displays the new line characters and paragraph
>>>>>characters
>>>>>(<BR> and <p> notations) stored in the text field as such. meaning
>>>>>instead
>>>> of
>>>>>using these characters as commands for new line it is displaying them
>>>>>as
>>>> it is,
>>>>>ie as "<BR>" and "<p>". in this way the paragraph boundaries has gone.
>>>>
>>>> If access is showing the wrong character that indicates the data is
>>>> corrupt.
>>>>
>>>> If the field contains HTML (which it appears it does if it has <br> and
>>>> <p>
>>>> elements that you expect to be honors) then you should not be using
>>>> Server.HTMLEncode. It has to be assumed that a field containing HTML
>>>> is
>>>> already HTML encoded.
>>>>
>>>> This is a long thread, I can't remember if you indicated how the data
>>>> arrived in the DB in the first place.
>>>>
>>>> --
>>>> Anthony Jones - MVP ASP/ASP.NET
>>>>
>>>>
>>>
>>>
>>>i had copied the data from a word file and using control-c i had pasted
>>>it into a richtext textbox in my asp form.
>>>
>>> also please tell me how to ensure that regardless of whether the data is
>>> html encoded or not, my server.htmlencode should work alright.
>>>
>>>
>>
>> I haven't read the whole thread, but pasting directly from Word into a
>> rich text box is asking for trouble. I recommend pasting from Word into
>> Notepad, then taking the result and pasting it into the Rich text box.
>> Word sometimes does odd things with what should be "double quotes". And
>> it retains a whole load of Word-specific formatting - often over-riding
>> your carefully crafted css.
>>
>> --
>> Mike Brind
>> Microsoft MVP - ASP/ASP.NET
>>
>
>
> also please tell me how to ensure that regardless of whether the data is
> html encoded or not, my server.htmlencode should work alright.

As Anthony said, if you are entering html code into the database with the
idea that this takes effect when you pull it back to a web page, you do not
want to server.htmlencode it. Since you are using a Rich Text Editor, I am
assuming that this will apply html tags to the text on entry, and you want
them to act on the output.

What you really want to do is to make sure no javascript or clientside
vbscript gets injected. One way to do this is just to reject any input that
contains the string "<script>" in it during your server-side validation.

Posted on 2008-04-11 14:13:56 by S N

you have guessed it very correctly that i am entering html code into the =
database (like table tags <td> <tr> in particular) with the=20
idea that this takes effect when it is pulled back to a web page, and =
hence i dont want to server.htmlencode it.

can you suggest a server side validation script which does as indicated =
below by you. else can you suggest an alternate method of achieving the =
above (ensuring the table tags get translated into tables on the client =
side).

please help.

> As Anthony said, if you are entering html code into the database with =
the=20
> idea that this takes effect when you pull it back to a web page, you =
do not=20
> want to server.htmlencode it. Since you are using a Rich Text Editor, =
I am=20
> assuming that this will apply html tags to the text on entry, and you =
want=20
> them to act on the output.
>=20
> What you really want to do is to make sure no javascript or clientside =

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2900.3314" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3DArial size=3D2>you have guessed it very correctly that =
i am=20
entering html code into the database (like table tags &lt;td&gt; =
&lt;tr&gt; in=20
particular) with the&nbsp;<BR> idea that this takes effect when&nbsp;it=20
is&nbsp;pulled back to a web page,&nbsp;and hence i dont&nbsp;want to=20
server.htmlencode it.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>can you suggest a server side =
validation script=20
which does as indicated below by you. else can you suggest an alternate =
method=20
of achieving the above (ensuring the table tags get translated into =
tables on=20
the client side).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>please help.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>&gt; As Anthony said, if you are =
entering html code=20
into the database with the <BR>&gt; idea that this takes effect when you =
pull it=20
back to a web page, you do not <BR>&gt; want to server.htmlencode =
it.&nbsp;=20
Since you are using a Rich Text Editor, I am <BR>&gt; assuming that this =
will=20
apply html tags to the text on entry, and you want <BR>&gt; them to act =
on the=20
output.<BR>&gt; <BR>&gt; What you really want to do is to make sure no=20
javascript or clientside <BR>&gt; vbscript gets injected.&nbsp; =
<STRONG><FONT=20
color=3D#ff0000>One way to do this is just to reject any input that =
<BR>&gt;=20
contains the string "&lt;script&gt;" in it during your server-side=20
validation.<BR></FONT></STRONG>&gt; <BR>&gt; --<BR>&gt; Mike =
Brind<BR>&gt;=20
Microsoft MVP - ASP/ASP.NET <BR>&gt; <BR>&gt;=20
<BR>&gt;</FONT></DIV></BODY></HTML>

#9: Re: printing character " and " in asp using vbscript

Posted on 2008-04-11 22:10:12 by Paxtonend

>> As Anthony said, if you are entering html code into the database with the
>> idea that this takes effect when you pull it back to a web page, you do
>> not
>> want to server.htmlencode it. Since you are using a Rich Text Editor, I
>> am
>> assuming that this will apply html tags to the text on entry, and you
>> want
>> them to act on the output.
>>
>> What you really want to do is to make sure no javascript or clientside
>> vbscript gets injected. One way to do this is just to reject any input
>> that
>> contains the string "<script>" in it during your server-side validation.
>>
>> --
>> Mike Brind
>> Microsoft MVP - ASP/ASP.NET
>>
>
>
> you have guessed it very correctly that i am entering html code into the
> database (like table tags <td> > <tr> in particular) with the
> idea that this takes effect when it is pulled back to a web page, and
> hence i dont want to > server.htmlencode it.
>
> can you suggest a server side validation script which does as indicated
> below by you. else can you > suggest an alternate method of achieving
> the above (ensuring the table tags get translated into tables > on the
> client side).

'input is the posted content from the Rich Text Editor

If InStr(input, "<string>") > 0 Then
'reject it
Else
'process it
End If