Bekijk Volledige Versie : [PHP/MySQL] alt keys
Jan Smeelen
16/12/03, 23:15
Ik wil in een site gebruik maken van
alt 171 ( = 1/2 ( als een character)
Bij een kennis van me, krijg ik netjes
1/2 te zien, doe ik het op mijn eigen computer,
dan krijg ik << in het klein te zien... ?
Volgens mij moet ik ergens een instelling op mijn eigen computer niet
goed hebben staan, maar weet zo niet 1,2,3 waar te zoeken.
Ik sla de input verkregen via een invoer form op
in een MySQL database, maar krijg dan in de database :
&f in plaats van alt 171
Bovendien zou ik graag hebben, dat bezoekers welke
mogelijk andere instellingen hebben van de character set,
tóch netjes 1/2 ( als een character ) te zien krijgen.....
( waarschijnlijk moet dat in de DOCTYPE aangegeven worden ? )
Gedeeltelijk dus een server side vraag, opslaan van die
alt171 code in de MySQL database, en juiste waarde retour krijgen,
om weer te geven op de web pagina.
Ander gedeelte waarschijnlijk een NIWO vraag ( Doctype )
Ik ben toch zo vrij, om niet te gaan crossposten ;o)
Wie heeft een juiste tip voor me ?
Bedankt voor eventuele reply !
Jan.
Rene Pijlman
16/12/03, 23:45
Jan Smeelen:
>Ik wil in een site gebruik maken van
>alt 171 ( = 1/2 ( als een character)
De betekenis van Alt-toetsenbordcombinaties hangt af van de
Windows-configuratie en zelfs van het gekozen font (yuk!).
Op een website wordt het bepaald door de character encoding. Welke
encoding gebruikt de website? En de database?
Beter is het gebruik te maken van HTML character entities, dat voorkomt
een hoop van dit soort narigheid. Uit mijn hoofd:
½
Leestip: http://www.w3.org/TR/charmod/
>Bij een kennis van me, krijg ik netjes
>1/2 te zien, doe ik het op mijn eigen computer,
>dan krijg ik << in het klein te zien... ?
URL?
>Bovendien zou ik graag hebben, dat bezoekers welke
>mogelijk andere instellingen hebben van de character set,
>tóch netjes 1/2 ( als een character ) te zien krijgen.....
>( waarschijnlijk moet dat in de DOCTYPE aangegeven worden ? )
In de HTTP-headers bij voorkeur. Dat gaat bijvoorbeeld in httpd.conf van
Apache zo:
ISO 8859-1 (meest gebruikt):
AddDefaultCharset on
Andere encodings bijvoorbeeld:
AddDefaultCharset utf-8
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Jan Smeelen
17/12/03, 00:15
"Rene Pijlman" <reply.in.the.newsgroup@my.address.is.invalid> schreef in
bericht news:812vtvos24foan0idbfjmiajulbnr0buid@4ax.com...
> Jan Smeelen:
> >Ik wil in een site gebruik maken van
> >alt 171 ( = 1/2 ( als een character)
>
> De betekenis van Alt-toetsenbordcombinaties hangt af van de
> Windows-configuratie en zelfs van het gekozen font (yuk!).
Jammer dus :(
Betekent dit dan dat ik dat niet kan realiseren ??
( Dus ongeacht merk/instelling computer van de gebruiker,
netjes : 1/2 (ALT 171) kan laten weergeven ?
> Op een website wordt het bepaald door de character encoding. Welke
> encoding gebruikt de website? En de database?
Moet ik nakijken.
> Beter is het gebruik te maken van HTML character entities, dat voorkomt
> een hoop van dit soort narigheid. Uit mijn hoofd:
>
> ½
Dát werkt bij mij dus wél ! :)
Kan ik het op die manier dus wél op elke computer netjes
laten weergeven ?
> >Bij een kennis van me, krijg ik netjes
> >1/2 te zien, doe ik het op mijn eigen computer,
> >dan krijg ik << in het klein te zien... ?
>
> URL?
Staat niet op www
invoer is gedaan bij die kennis, echter opgeslagen in
de database, en nu staat dus in de database : &f
als ikzelf ALT 171 gebruik, zie ik dus : «
( 2 kleine acculades wijzend naar links achterelkaar bij mij)
> >Bovendien zou ik graag hebben, dat bezoekers welke
> >mogelijk andere instellingen hebben van de character set,
> >tóch netjes 1/2 ( als een character ) te zien krijgen.....
> >( waarschijnlijk moet dat in de DOCTYPE aangegeven worden ? )
>
> In de HTTP-headers bij voorkeur. Dat gaat bijvoorbeeld in httpd.conf van
> Apache zo:
>
> ISO 8859-1 (meest gebruikt):
> AddDefaultCharset on
>
> Andere encodings bijvoorbeeld:
> AddDefaultCharset utf-8
Als ik het kan oplossen met @fract12, ben ik al gelukkig,
deze site draait (nog) op een server waarvan ik 50% eigenaar
ben, wil dus niet zomaar dingen aan de apache httpd.conf
aanpassen ;)
Het zit in de planning om hem binnenkort over te huizen naar mijn
2e nieuwe server welke wél 100% eigendom is :o)
Bedankt voor je (snelle) reply overigens :)
Groeten,
Jan.
Daniel Tryba
17/12/03, 09:15
Jan Smeelen <smeelen@friaco.nl> wrote:
> Ik wil in een site gebruik maken van
> alt 171 ( = 1/2 ( als een character)
>
> Bij een kennis van me, krijg ik netjes
> 1/2 te zien, doe ik het op mijn eigen computer,
> dan krijg ik << in het klein te zien... ?
??? Wat staat er in de source? (de hex waarden)
> Volgens mij moet ik ergens een instelling op mijn eigen computer niet
> goed hebben staan, maar weet zo niet 1,2,3 waar te zoeken.
>
> Ik sla de input verkregen via een invoer form op
> in een MySQL database, maar krijg dan in de database :
> &f in plaats van alt 171
Hoe heb je die data dan ingevoerd (scritps)?
> Bovendien zou ik graag hebben, dat bezoekers welke
> mogelijk andere instellingen hebben van de character set,
> t?ch netjes 1/2 ( als een character ) te zien krijgen.....
> ( waarschijnlijk moet dat in de DOCTYPE aangegeven worden ? )
Dat doe je dus met de door Rene voorgestelde entities, echter als de
input van users komt wordt het natuurlijk een stukje lastiger. Maar in
principe kan het gewoon met html_entities, je moet dan wel het encoding
type weten.
> Gedeeltelijk dus een server side vraag, opslaan van die
> alt171 code in de MySQL database, en juiste waarde retour krijgen,
> om weer te geven op de web pagina.
Mysql heeft geen besef van character encoding, invoer en uitlezen is dus
geen probleem. Het probleem zit dus in je scripts.
De ideale oplossing is overigens om unicode te gebruiken in combinatie
met utf-8. Dat zal op de meeste moderne installaties wel werken.
--
Daniel Tryba
Rene Pijlman
17/12/03, 16:15
Jan Smeelen:
>Rene Pijlman:
>> Beter is het gebruik te maken van HTML character entities, dat voorkomt
>> een hoop van dit soort narigheid. Uit mijn hoofd:
>>
>> ½
>
>Dát werkt bij mij dus wél ! :)
>Kan ik het op die manier dus wél op elke computer netjes
>laten weergeven ?
Ja, normaalgesproken wel. ½ is de aanbevolen oplossing in HTML.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Rene Pijlman
17/12/03, 16:30
Daniel Tryba:
>Mysql heeft geen besef van character encoding,
Wel degelijk, anders zou het ding geen "order by" op strings kunnen doen.
Hoofdstuk 4.7 "MySQL Localisation and International Usage" is grotendeels
aan dit onderwerp gewijd. Zie:
http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html
>De ideale oplossing is overigens om unicode te gebruiken in combinatie
>met utf-8.
Is dat idealer dan HTML-entities?
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Daniel Tryba
17/12/03, 19:30
Rene Pijlman <reply.in.the.newsgroup@my.address.is.invalid> wrote:
>>Mysql heeft geen besef van character encoding,
>
> Wel degelijk, anders zou het ding geen "order by" op strings kunnen doen.
Je kunt gewoon op de waarde van de bytes sorteren. In principe wat er
gebeurd in BINARY velden en de *BLOBs.
> Hoofdstuk 4.7 "MySQL Localisation and International Usage" is grotendeels
> aan dit onderwerp gewijd. Zie:
> http://www.mysql.com/documentation/mysql/bychapter/manual_MySQL_Database_Administration.html
'The character set determines what characters are allowed in names and
how strings are sorted by the ORDER BY and GROUP BY clauses of the
SELECT statement.'
Mysql kan geen conversies doen en niet checken of het wel zinnige data
is binnen het characterset, verder kan je voor strings niet opgeven wat
het nu daadwerkelijk is (alleen per table).
(Ik zie nu wel dat er sinds 4.1 een nieuwe functie aan convert is
toegevoegt om data omte lullen naar andere charsets...)
>>De ideale oplossing is overigens om unicode te gebruiken in combinatie
>>met utf-8.
>
> Is dat idealer dan HTML-entities?
-niet overal zijn entities voor
-je bent niet gebonden aan html (wat alleen maar een represenatie is van
de data)
-compacter
--
Daniel Tryba
Rene Pijlman
17/12/03, 20:45
Daniel Tryba:
>Mysql kan geen conversies doen
Wel degelijk. Er kan worden geconverteerd tussen client en server.
>-niet overal zijn entities voor
Daar zijn numeric character references voor.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Daniel Tryba
17/12/03, 21:15
Rene Pijlman <reply.in.the.newsgroup@my.address.is.invalid> wrote:
>>Mysql kan geen conversies doen
>
> Wel degelijk. Er kan worden geconverteerd tussen client en server.
Zoals ik al tussen haakjes vermelde kan 4.1.x het wel:
convert('foo' using utf-8)
>>-niet overal zijn entities voor
>
> Daar zijn numeric character references voor.
Ehhh, die nummertjes zijn afhankelijk van het characterset:
http://www.w3.org/TR/html401/charset.html#h-5.3.1
Voor de huidige html is dat unicode, en dan ben ik terug bij mijn
stelling om dat dan ook maar naar de client te sturen om wille van de
andere punten.
--
Daniel Tryba
Jan Smeelen
18/12/03, 03:45
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> schreef in
bericht news:brp2tr$e6c$1@news.tue.nl...
> Jan Smeelen <smeelen@friaco.nl> wrote:
> > Ik wil in een site gebruik maken van
> > alt 171 ( = 1/2 ( als een character)
> >
> > Bij een kennis van me, krijg ik netjes
> > 1/2 te zien, doe ik het op mijn eigen computer,
> > dan krijg ik << in het klein te zien... ?
>
> > Bovendien zou ik graag hebben, dat bezoekers welke
> > mogelijk andere instellingen hebben van de character set,
> > t?ch netjes 1/2 ( als een character ) te zien krijgen.....
> > ( waarschijnlijk moet dat in de DOCTYPE aangegeven worden ? )
>
> Dat doe je dus met de door Rene voorgestelde entities, echter als de
> input van users komt wordt het natuurlijk een stukje lastiger. Maar in
> principe kan het gewoon met html_entities, je moet dan wel het encoding
> type weten.
Ik los het op, met die ½ en ¾ meer heb ik niet nodig :)
voor de invoer, ga ik ipv tekst veld nu gebruik maken van een pull-down
keuze lijstje, en sla gewoon die ½ op in de database,
op de makkelijkste manier alle problemen opgelost ! :o)
bedankt voor alle reply !
( Ook rene natuurlijk ;)
Jan.