Miten Unicode pois Vistasta?

Moi

Yritän saada yhtä vanhaa ohjelmaa toimimaan Vistassa. Sen kanssa on ongelmia fonttien/merkkien oikein näkymisessä. Tutkimusteni perusteella se johtuisi Vistan Unicodesta. XP:ssäkin oli vastaava ongelma, mutta se poistui poistamalla asetuksista tuen kaiken maailman ihme kielille, jolloin siis ilmeisesti siirryttiin käyttämään Unicoden sijasta perinteisempää 8-bittistä merkistökoodausta. Vistasta en ole löytänyt vastaavaa asetusta. Osaako joku neuvoa?
7395
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

Eikö ohjelmassa ole asetusta, mitä merkistöä se käyttää? Esim. Ansi. UTF-8 myös on myös Ansi-yhteensopiva alkupään merkkien kanssa.

Äänestä
  • Ei ole sellaista asetusta. Ja ongelma on nimenomaan alkupään merkkien kanssa. Vista ei näytä merkkejä chr(17) - chr(31) oikein, se ei näytä niitä merkkejä jotka eräässä erikoisfontissa on noilla paikoilla, vaan ihan jotain muita omiaan.

    Ja tiedän kyllä, että merkit chr(17) - chr(31) eivät ole varsinaisesti edes tarkoitettu tulostumaan, mutta tulostuvat kuitenkin tarkoitetulla tavalla vanhemmissa Windowseissa. Miten ne saa tulostumaan samalla tavalla myös Vistassa?

    Äänestä

  • Un-Unicode kirjoitti:

    Ei ole sellaista asetusta. Ja ongelma on nimenomaan alkupään merkkien kanssa. Vista ei näytä merkkejä chr(17) - chr(31) oikein, se ei näytä niitä merkkejä jotka eräässä erikoisfontissa on noilla paikoilla, vaan ihan jotain muita omiaan.

    Ja tiedän kyllä, että merkit chr(17) - chr(31) eivät ole varsinaisesti edes tarkoitettu tulostumaan, mutta tulostuvat kuitenkin tarkoitetulla tavalla vanhemmissa Windowseissa. Miten ne saa tulostumaan samalla tavalla myös Vistassa?

    Onko sulla tuota erikoisfonttia asennettuna Vistassa?

    Äänestä

  • Duke.. kirjoitti:

    Onko sulla tuota erikoisfonttia asennettuna Vistassa?

    ... kun kysymyksiin tulee vastauksena vain kysymyksiä.

    Tietenkin on.

    Merkit chr(1-16) ja chr(32-255) tulostuvat ihan niin kuin pitääkin, siis ruudulle.

    Välillä chr(16-31) suurin osa merkeistä ei tulostu oikein. Windows tulostaa haluttujen merkkien sijasta ihan jotain muita merkkejä. Myös chr(0) ei tulostu oikein, taitaa muuttua merkiksi chr(64).

    XP:ssä kaikki tulostuvat oikein, kun ottaa pois tuen kaiken maailman ihme kielille. Vistasta en ole löytänyt vastaavaa säätöä.

    Miksi Vista ei tulosta ruudulle merkkiä chr(16), kun käsketään tulostaa merkki chr(16), vaan ihan jonkun muun merkin? Samoin siis tekee myös XP, jos se ihmekielien tuki on päällä.

    Äänestä

  • Un-Unicode kirjoitti:

    ... kun kysymyksiin tulee vastauksena vain kysymyksiä.

    Tietenkin on.

    Merkit chr(1-16) ja chr(32-255) tulostuvat ihan niin kuin pitääkin, siis ruudulle.

    Välillä chr(16-31) suurin osa merkeistä ei tulostu oikein. Windows tulostaa haluttujen merkkien sijasta ihan jotain muita merkkejä. Myös chr(0) ei tulostu oikein, taitaa muuttua merkiksi chr(64).

    XP:ssä kaikki tulostuvat oikein, kun ottaa pois tuen kaiken maailman ihme kielille. Vistasta en ole löytänyt vastaavaa säätöä.

    Miksi Vista ei tulosta ruudulle merkkiä chr(16), kun käsketään tulostaa merkki chr(16), vaan ihan jonkun muun merkin? Samoin siis tekee myös XP, jos se ihmekielien tuki on päällä.

    Siis ongelma on alueella 17-31 eikä 16-31. Merkki 16 tulostuu oikein, mutta esimerkiksi merkki 17 ei.

    Äänestä

  • Un-Unicode kirjoitti:

    Siis ongelma on alueella 17-31 eikä 16-31. Merkki 16 tulostuu oikein, mutta esimerkiksi merkki 17 ei.

    Ihmetyttää nuo pienet merkit yleensäkkin < 32, nämähän ovat yleensä ohjausmerkkejä, joita ei ole edes tarkoitus tulostella mitenkään, esim. Char(0).

    http://www.december.com/html/spec/ascii.html

    Äänestä

  • Duke.. kirjoitti:

    Ihmetyttää nuo pienet merkit yleensäkkin < 32, nämähän ovat yleensä ohjausmerkkejä, joita ei ole edes tarkoitus tulostella mitenkään, esim. Char(0).

    http://www.december.com/html/spec/ascii.html

    Miksi vaivautua vastaamaan mitään, jos ei tiedä vastausta? Miksi turhaan tarjoat minulle jotain ascii-taulukkoa, jonka olen osannut ulkoa jo noin 25 vuotta?

    Kuten jo aikaisemmin mainitsin, tiedän varsin hyvin, että merkit alle 32 eivät ole varsinaisesti tarkoitettu tulostumaan, vaan ovat ohjausmerkkejä. Bittikarttafontille voi kuitenkin piirtää merkit myös koodeille 0-31, ja ne ovat ennen Vistaa tulostuneet ruudulle kaikissa Microsoftin käyttöjärjestelmissä. Poislukien tietysti koodit, jotka eivät tulosta merkkiä vaan esim. tabulaattorin (9), rivinvaihdon (10/13) ym. (Paitsi nekin sai ennen vanhaan tulostumaan tyrkkäämällä merkin koodin suoraan näyttömuistiin.)

    Jopa Vistakin tulostaa merkit 16-31, mutta ei hae niitä käytettävästä fontista, vaan vetää jostain ihmeen hatusta ihan vääränlaiset merkit. Siis vielä kertauksen vuoksi:

    Asetettu fontti xyz, tulostetaan merkki 15 -> tulostuu oikein.

    Asetettu edelleen sama fontti xyz, tulostetaan merkki 20 -> tulostuu joku ihan väärä merkki, jota ei ole ollenkaan kyseisessä fontissa xyz. Ymmärtäisin senkin jos ei tulostuisi mitään, mutta miksi pitää tulostua väärä merkki?

    Fontissa on merkki jokaikisellä koodilla 0-255. Niistä siis kaikki muut tulostuvat oikein Vistassa, paitsi merkit 16-31 (joilla tulee erilaisia nuolia tai laatikoita). Miksi ihmeessä? Miten tilanteen saisi korjattua?

    Yritän vielä tämän kerran, josko joku ihan oikeasti tietävä osaisi vastata?

    Äänestä

Kommentoi aloitusta


Un-Unicode kirjoitti:

Moi

Yritän saada yhtä vanhaa ohjelmaa toimimaan Vistassa. Sen kanssa on ongelmia fonttien/merkkien oikein näkymisessä. Tutkimusteni perusteella se johtuisi Vistan Unicodesta. XP:ssäkin oli vastaava ongelma, mutta se poistui poistamalla asetuksista tuen kaiken maailman ihme kielille, jolloin siis ilmeisesti siirryttiin käyttämään Unicoden sijasta perinteisempää 8-bittistä merkistökoodausta. Vistasta en ole löytänyt vastaavaa asetusta. Osaako joku neuvoa?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu