Archief - ASP: Verwerken speciale karakters

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Blue Thunder

Legacy Member
Hallo,

Ik heb een formulier dat zowel door belgen, polen, franse en protugese personen kan ingevult worden. Zoals jullie wel kunnen er hier dus heel wat karakters gebruikt worden.
Maar bij het invullen van speciale poolse karakters worden deze gewoon opgezet naar een ander karakter. Zo wordt de pools s met een accent op, gewoon naar een s omgezet bij het versturen van het formulier en zo in dus ook in de database gezet.

weet iemand wat het probleem zou kunnen zijn?

bij de meta tags staat het al op utf-8

groeten en alvast bedankt

Blue Thunder

Legacy Member
db kan het zeker aan, bestaat geen twijfel over, is een MS SQL, die op Latin1_General_CP1_CI_AS staat, er staan al een heleboel karakters zo in.

RpR

Legacy Member
kan het zijn dat die speciale s kan worden omgezet in een html equivalent?
zoals bv < wordt omgezet naar &lt

Blue Thunder

Legacy Member
Ik haal ze ook ergens uit de database en als ik de source bekijk staan ze er gewoon in, niet omgezet naar een html equivalent

Fr3aK

Legacy Member
Zet ze om naar html entities nadat je ze uit de db haalt.
Ik ken nu niks van ASP maar in PHP doe je dat via:
PHP:
$input = htmlentities($input, ENT_QUOTES, "UTF-8");
Waarbij die UTF-8 hetzelfde moet zijn als de content-type van je pagina...

Blue Thunder

Legacy Member
ja ik denk dat men uitleg ni zo goe was, het gaat eigenlijk om karakters zoals deze: &#347; &#263;

Ramm

Legacy Member
Code:
<%
'Place all the different characters in this string, separated by a |
strCharacters = "&|<|>|¡|¢|£|¥|¦|§|¨|©|ª|«|¬|®|&#8482;|¯|°|±|²|³|´|µ|¶|·|¸|¹|º|»|¼|½|¾|¿|×|÷|À|Á|Â|Ã|Ä|Å|Æ|Ç|È|É|Ê|Ë|Ì|Í|Î|Ï|Ð|Ñ|Ò|Ó|Ô|Õ|Ö|Ø|Ù|Ú|Û|Ü|Ý|Þ|ß|à|á|â|ã|ä|å|æ|ç|è|é|ê|ë|ì|í|î|ï|ð|ñ|ò|ó|ô|õ|ö|ø|ù|ú|û|ü|ý|þ|ÿ|&#338;|&#339;|&#352;|&#353;|&#376;|&#710;|&#732;|&#8211;|&#8212;|&#8216;|&#8217;|&#8218;|&#8224;|&#8225;|&#8230;|&#8240;|&#8249;|&#8250;|&#8364;"

'Place the HTML-codes for the characters in this string, separated by a |
strHTMLCodes  = "&amp;|&lt;|&gt;|&iexcl;|&cent;|&pound;|&yen;|&brvbar;|&sect;|&uml;|&copy;|&ordf;|&laquo;|&not;|&reg;|&trade;|&macr;|&deg;|&plusmn;|²|³|&acute;|&micro;|&para;|&middot;|&cedil;|¹|&ordm;|&raquo;|¼|½|¾|&iquest;|&times;|&divide;|&Agrave;|&Aacute;|&Acirc;|&Atilde;|&Auml;|&Aring;|&AElig;|&Ccedil;|&Egrave;|&Eacute;|&Ecirc;|&Euml;|&Igrave;|&Iacute;|&Icirc;|&Iuml;|&ETH;|&Ntilde;|&Ograve;|&Oacute;|&Ocirc;|&Otilde;|&Ouml;|&Oslash;|&Ugrave;|&Uacute;|&Ucirc;|&Uuml;|&Yacute;|&THORN;|&szlig;|&agrave;|&aacute;|&acirc;|&atilde;|&auml;|&aring;|&aelig;|&ccedil;|&egrave;|&eacute;|&ecirc;|&euml;|&igrave;|&iacute;|&icirc;|&iuml;|&eth;|&ntilde;|&ograve;|&oacute;|&ocirc;|&otilde;|&ouml;|&oslash;|&ugrave;|&uacute;|&ucirc;|&uuml;|&yacute;|&thorn;|&yuml;|&OElig;|&oelig;|&Scaron;|&scaron;|&Yuml;|&circ;|&tilde;|&ndash;|&mdash;|&lsquo;|&rsquo;|&sbquo;|&dagger;|&Dagger;|&hellip;|&permil;|&lsaquo;|&rsaquo;|&euro;"

'Create Arrays with the characters
arrHTMLChars = Split(strCharacters, "|")
arrHTMLCodes = Split(strHTMLCodes, "|")

function makeChars(text)
  charCounter = 0
  for charCounter = 0 to ubound(arrHTMLChars)
  	text = replace(text, arrHTMLChars(charCounter), arrHTMLCodes(charCounter))
  next
  
  makeChars = text
end function
%>

Enige wat je dan moet doen is uw string converteren. Ik heb deze code gemaakt voor mijn shop en het werkt goed. Normaalgezien zijn alle html-karakters opgenomen, maar als je er nog wilt toevoegen kan je dat gewoon doen door ze op te nemen in de charlijst & valuelijst, gescheiden met een |

strTekst = makeChars(strTekst)

RpR

Legacy Member
Blue Thunder zei:
ok bedankt, ga is kijken of dat werkt
Dit is beter en doet juist hetzelfde en zal altijd sneller zijn:
$input = htmlentities($input, ENT_QUOTES, "UTF-8");

Ramm

Legacy Member
RpR zei:
Dit is beter en doet juist hetzelfde en zal altijd sneller zijn:
$input = htmlentities($input, ENT_QUOTES, "UTF-8");
PHP <-> ASP ?
Geloof me, moest er zo'n functie bestaan in ASP zou ik er ook gretig gebruik van maken. Tot nu toe nog altijd geen gevonden zodat ik ze zelf maar geschreven heb.

Blue Thunder

Legacy Member
ja 't is hier ook altijd hetzelfde hé, vraag je naar "ASP" wat krijg je voor antwoord ja ik weet niet hoor, maar in PHP hé, 'k vraag me soms af of het nog wel de moeite is om da hier te vragen

ik vind het wel leuk dat iedereen altijd zo goed is elkaar proberen te helpen, maar als je naar ASP vraagt dan heb je natuurlijk niks aan een PHP antwoord

dJeez

Legacy Member
Pools behoort niet tot latin1 (ISO-8859-1) maar tot latin2 (ISO-8859-2). Je kan in dit geval dus beter ook opteren voor UTF-8 encoding op je DB.

Blue Thunder

Legacy Member
dJeez zei:
Pools behoort niet tot latin1 (ISO-8859-1) maar tot latin2 (ISO-8859-2). Je kan in dit geval dus beter ook opteren voor UTF-8 encoding op je DB.

dat is in dit geval wel even te laat (DB is 250 MB groot), maar blijkbaar kan hij toch die karakters aan, iemand gaf poolse karakters en deze werden verkeerd weergegeven, ik ben dan gaan opzoeken, in de database stonden ze als #&..., zo werden ze ook getoont, ik ben de karakters dan gaan opzoeken en heb ze er gewoon ingeplakt

deadlock

Legacy Member
Ramm zei:
Code:
Ik heb deze code gemaakt voor mijn shop en het werkt goed. Normaalgezien zijn alle html-karakters opgenomen, maar als je er nog wilt toevoegen kan je dat gewoon doen door ze op te nemen in de charlijst & valuelijst, gescheiden met een |[/QUOTE]
Als je je document opslaat als utf-8, moet je geen speciale karakters omvormen!
Enkel dubbele quote, enkele quote, ampersand , groter-dan en kleiner-dan (cfr XML).
Daarom dat bvb php 2 verschillende functies heeft: htmlentitites die alles omzet, en htmlspecialchars die enkel bovengenoemde omzet. Weet niet of dit voor ASP ook zo is.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan