Monday, September 19, 2016

Oorweeg Die Gebruik Van The Force Binary Collation Option

Waarde uitdrukkings word gebruik in 'n verskeidenheid kontekste, soos in die teiken lys van die Gekose opdrag, as nuwe kolom waardes in INSERT of UPDATE. of op soek na toestande in 'n aantal bevele. Die resultaat van 'n waarde uitdrukking word soms 'n skalaar. om dit te onderskei van die uitslag van 'n tafel uitdrukking (wat is 'n tabel). Waarde uitdrukkings word dus ook 'n beroep skalaar uitdrukkings (of selfs net uitdrukkings). Die uitdrukking sintaksis laat die berekening van waardes van primitiewe dele met behulp van rekenkundige en logiese, stel, en ander bedrywighede. 'N Waarde uitdrukking is een van die volgende: 'n konstante of letterlike waarde A kolom verwys 'n posisionele parameter verwysing, in die liggaam van 'n funksie definisie of voorberei verklaring A subscripted uitdrukking A veld seleksie uitdrukking 'n operateur aanroeping n funksie noem 'n Gemiddelde uitdrukking 'n venster funksie noem 'n samestelling uitdrukking 'n skalaar subquery 'n verskeidenheid constructor 'n ry konstruktor Nog waarde uitdrukking in hakies (wat gebruik word om groep aangestel vir subuitdrukkingen en ignoreer voorrang) Benewens hierdie lys, daar is 'n aantal konstrukte wat as 'n uitdrukking geklassifiseer kan word, maar dit nie doen nie volg 'n algemene sintaksis reëls. Hulle het oor die algemeen die semantiek van 'n funksie of operateur en word in die toepaslike plek in Hoofstuk 9. 'n Voorbeeld is die IS NULL klousule. Ons het reeds bespreek konstantes in Afdeling 4.1.2. Die volgende afdelings bespreek die oorblywende opsies. 'N kolom kan verwys word in die vorm: korrelasie is die naam van 'n tafel (moontlik gekwalifiseer met 'n skedule naam), of 'n alias vir 'n tafel gedefinieer deur middel van 'n UIT klousule. Die naam korrelasie en skei dot kan weggelaat word indien die naam kolom is uniek in al die tafels wat gebruik word in die huidige navraag. (Sien ook hoofstuk 7.) 'N posisionele parameter verwysing gebruik word om 'n waarde wat ekstern verskaf om 'n SQL-stelling te dui. Parameters gebruik word in SQL funksie definisies en in voorbereide navrae. Sommige kliënt biblioteke ook ondersteun spesifiseer datawaardes afsonderlik van die SQL opdrag string, in welke geval parameters word gebruik om te verwys na die buite-lyn datawaardes. Die vorm van 'n parameter verwysing is: Byvoorbeeld, kyk na die definisie van 'n funksie, dept. soos: Hier is die 1 verwysings die waarde van die eerste funksie argument wanneer die funksie is opgeroep. As 'n uitdrukking 'n waarde van 'n verskeidenheid soort opbrengste, dan 'n spesifieke element van die skikking waarde kan verkry word deur skriftelik of veelvuldige aangrensende elemente ( 'n verskeidenheid sny) kan verkry word deur skriftelik (Hier is die hakies bedoel om letterlik te verskyn.) elke onderskrif is self 'n uitdrukking wat 'n heelgetal waarde moet oplewer. Oor die algemeen moet die skikking uitdrukking word hakies, maar die hakies kan weggelaat word wanneer die uitdrukking word subscripted is net 'n verwysing kolom of posisionele parameter. Ook, kan verskeie onderskrifte saamgevoeg word wanneer die oorspronklike skikking is multidimensioneel. Byvoorbeeld: Die hakies in die laaste voorbeeld benodig word. Sien Afdeling 8.15 vir meer inligting oor skikkings. As 'n uitdrukking lewer 'n waarde van 'n saamgestelde tipe (ry tipe), dan 'n spesifieke gebied van die ry kan verkry word deur te skryf oor die algemeen die ry uitdrukking moet hakies, maar die hakies kan weggelaat word wanneer die uitdrukking gekies uit die lyste is net 'n tafel verwysing of posisionele parameter. Byvoorbeeld: (So, 'n gekwalifiseerde verwysing kolom is eintlik net 'n spesiale geval van die veld seleksie sintaksis.) 'N Belangrike spesiale geval is onttrek 'n stuk grond van 'n tafel kolom wat van 'n saamgestelde tipe: Die hakies is hier nodig om te wys dat compositecol is 'n naam kolom nie 'n tafel naam, of wat mytable is 'n tabel naam nie 'n skedule naam in die tweede geval. In 'n uitgesoekte lys (sien Afdeling 7.3), kan jy vir al die velde van 'n saamgestelde waarde vra deur te skryf. : Daar is drie moontlike syntaxes vir 'n operateur aanroeping: Die gebruik van Unicode in Visual FoxPro Web en Desktop Aansoeke Unicode bied 'n universele vertoning meganisme vir strykers in 'n aansoek. 'N algemene probleem vir aansoeke is om al die verskillende tale en karakter sets wat verband hou met hulle maklik en konsekwent vertoon. Unicode bied 'n enkele karakter stel dat alle tale kan vertoon met 'n enkele karakter verteenwoordiging meganisme wat die kompleksiteit van die vertoon baie verskillende tale soos Chinees, Koreaans, Russies en Westerse tale soos Engels in 'n enkele vorm of webblad vergemaklik. Ongelukkig, Visual FoxPro kom nie t het boorling Unicode ondersteuning, wat beteken dat jy 'n bietjie ekstra werk te doen en te verstaan ​​hoe om stringe uit verskeie karakter sets en hoe om te werk met Unicode data in Visual FoxPro integreer. In hierdie artikel, ek beskryf hoe jy Unicode kan gebruik met jou aansoek in die konteks van gelyktydig ondersteun verskeie tale. wat VFP geredelik ondersteun - hoewel Visual FoxPro Unicode t direk kan vertoon, kan dit ander karakter stel deur gebruik van CodePages n land spesifieke karakter kartering vertoon. Dit werk goed vir programme wat inhoud gee net uit 'n enkele taal / land. Maar hierdie benadering het ernstige beperkinge as jy nodig het om te snare van verskeie tale gelyktydig vertoon. Ek begin met 'n oorsig van die kwessies en hoe om te werk met Unicode in die algemeen, dan wys jou hoe om Unicode data te herwin en te werk, en uiteindelik, wys jou hoe om die Unicode inhoud beide in jou Web en lessenaar gebruikerkoppelvlakke te vertoon kry. Let asseblief daarop dat die meeste van die oplossings wat aangebied word in hierdie artikel staatmaak op 'n paar nuwe Visual FoxPro 9.0 eienskappe, so VFP 9 of later word sterk aanbeveel. Die boorling VFP data toegang en SQL Pass Through monsters kan werk in VFP 8 of later. Onlangs was ek betrokke by 'n projek waar een van die vereistes is om inhoud wat vertoon in 'n verskeidenheid van tale, insluitend Asiatiese en Oos-Europese tale, met behulp van Unicode data gestoor word in 'n SQL Server databasis te skep. My probleem betrokke lees insette van verskeie tale, die redding van die data te SQL Server en dan vertoon en opneem van die data uit verskeie tale op 'n enkele web bladsy. Visual FoxPro doesn t ondersteun Unicode direk so hantering van verlengde karakter stelle soos Cyrilliese of enige van die Asiatiese stelle is eerder moeilike en ietwat verwarrend. Dit kom nie t help dat daar isn t veel dokumentasie oor hierdie onderwerp. In hierdie artikel sal ek my ontdekkings van die werk met Unicode data in Visual FoxPro en hoe ek was uiteindelik in staat wees om hierdie probleem aan te spreek met 'n paar oplossings te beskryf. Alhoewel die fokus in hierdie spesifieke projek was met Web data Ek sal ook kortliks bespreek Unicode binnekant van die FoxPro gebruikerskoppelvlak teen die einde van die artikel. Wat is die probleem Visual FoxPro gebruik ANSI karakters, wat is 'n nie Unicode karakter vertoon meganisme. In plaas daarvan gebruik 'n N-byte (verwarrend bekend as multi-byte, maar dit beteken 1 of 2 grepe) voorstelling van karakters. Multi-byte karakter stelle is gebaseer op kode bladsye wat 'n spesifieke karakter stel gekarteer om een ​​of meer tale verteenwoordig. Byvoorbeeld, CODE 1252 Windows Wes kaarte vir die meeste Engelse en Wes-Europese tale. 1251 kaarte om Oos-Europese tale soos Pools. en so aan. Dit pre-Unicode meganisme was algemeen in die dae van DOS en Win16 en is steeds in gebruik vir nie-Unicode-programme wat op 32 bit Windows vandag. Die probleem met hierdie meganisme is dat hierdie skema van kode bladsye maak dit baie moeilik om die inhoud van verskeie kode bladsye vertoon terselfdertyd. So as jy wil Russiese en Chinese teks vertoon op dieselfde bladsy is dit onmoontlik om te doen, is omdat jy net een kode bladsy kan gebruik op 'n slag. Wanneer Win32 rondom gekom, Microsoft gestoot hard vir 'n volle Unicode implementering en Windows 95 en later is hoofsaaklik gebaseer op Unicode-karakters. Ten tyde veroorsaak hierdie nogal 'n opskudding, omdat die meeste ontwikkeling gereedskap van die dag Unicode nog nie ondersteun. Unicode by Microsoft regtig didn t kom in volle wasdom tot Visual Basic en COM tot stand in die vroeë 1990 s het. Microsoft se COM komponent koppelvlak is ten volle gebaseer op 'n Unicode gebaseer string stelsel wat heeltemal deursigtig is om die ontwikkelaar was. Visual FoxPro egter gebly met interne multi-byte karakter aanbiedings en, tot vandag toe, het slegs 'n minimale ondersteuning vir Unicode. Die omvang van sy Unicode funksie is basies 'n paar funksies wat u toelaat om snare te skakel (in 'n redelik beperkte wyse) tussen multi-byte en Unicode, sowel as 'n paar string funksies wat kan werk op Unicode snare. Maar VFP het geen manier om te Unicode snare met behulp van sy geboorteland kontrole eintlik vertoon. Visual FoxPro kan egter verteer Unicode data tot 'n mate deur die uitvoering van 'n outomatiese kode bladsy vertalings. By verstek Visual FoxPro gebruik 'n kode bladsy wat ooreenstem met die stelsel instellings. Elke keer as 'n soort van bekering moet plaasvind vir lees Unicode data van 'n data bron soos SQL Server of toegang tot 'n COM voorwerp Visual FoxPro die string van Unicode vat outomaties in die toepaslike kode bladsy, en andersom. Dit werk goed solank die data jy weer werk met kaarte uniek in hierdie spesifieke kode bladsy. So as ek werk met Engels / Western data heeldag Ek sal nooit 'n probleem met Unicode data het. Dit is, totdat jy begin doen het met uitgebreide karakter sets wat Don t ooreenstem met jou huidige stelsel se kode bladsy. Jy het 'n paar beheer oor die proses deur die oprigting van VFP se kode bladsy, en die gebruik van SYS (3101) - nuut in VFP 9 - wat kan jy stel hoe Visual FoxPro vertaal snare van COM voorwerpe. Jy kan ook snare te skakel direk na en van Unicode deur gebruik te maak van STRCONV () met onderskeidelik nConversionSetting opsies 5 en 6. Hierdie funksies kan jy 'n FoxPro string neem en dit omskep in Unicode en terug met 'n parameter opsionele kode bladsy (of land identifiseerder) te spesifiseer hoe die vertaling voorkom. Dit alles beteken dat as jy Windows loop in 'n Koreaanse-kode bladsy en jy Koreaanse data uit die databasis te haal VFP kan hanteer hierdie inligting net mooi beide in string formaat en in die gebruikerskoppelvlak. Maar, as jy hardloop in die Engelse weergawe van Windows en probeer om daardie selfde Koreaanse data wat jy sal vind dat VFP nie kan lees of hierdie data voor te stel gelees (jy kry 'n klomp van die vraagtekens). Terwyl VFP kan gedwing om snare met behulp van spesifieke kode bladsye skakel (met STRCONV () of SYS (3101) byvoorbeeld) die FoxPro UI kan net met 'n enkele kode bladsy by tyd. Jy kan 'n sekondêre multi-byte omskakeling taal toe te voeg tot jou stelsel in die Configuratiescherm Regional Settings Gevorderde soos getoon in Figuur 1. Ongelukkig hierdie instelling is 'n pyn te stel wat jy het om weer te begin nadat dit verander. Figuur 1: standaard Unicode instel om Multi-byte vertaling taal. Die taal wat jy hier kies sal VFP se verstek uitgebrei karakter stel wat gebruik word om teks vertoon word. Met die gemaak instellings sou ek in staat was om omskakelings te doen vir die Koreaanse en ek kan en vertoon snare in Koreaanse formaat gebruik in my VFP aansoeke sal wees. Maar ek het nog wouldn t in staat wees om dieselfde vir Chinese of Russiese doen op dieselfde tyd. Met ander woorde, die bogenoemde opsie werk net vir 'n enkele taal, wat fyn kan wees vir 'n program wat moet net werk met 'n enkele taal op 'n slag. Doen doelskoppe hierdie manier is ook baie beperk as u aansoek het 'n baie bewus wat kode bladsy wat jy omskakeling na en van in Visual FoxPro sonder hierdie inligting te wees Unicode doelskoppe uit die boonste karakter sets wat baie verskil van die masjien verstek kode bladsy sal lei tot verlore of verander karakters 'n verlies van data. Dit is baie waarskynlik dat as jy Unicode-karakters te skakel van 'n nie-standaard-kode bladsy, sal jy nie in staat wees om hierdie snare te skakel na 'n nuttige Visual FoxPro string in die VFP omgewing. As jou rekenaar is ingestel vir die kode bladsy 1252, en jy lees 'n Koreaanse Unicode string en skakel dit om na 'n FoxPro string met STRCONV () sal jy vind dat jy 'n string vol. Die. karakter dui daarop dat VFP t didn weet hoe om hierdie karakter te omskep in iets wat in die huidige kode bladsy kan verteenwoordig. En dit is regtig die kern van die probleem met VFP s Unicode ondersteuning. Jy kan 'n CODE of Locale toepassing op die omskakeling in welke geval Visual FoxPro eintlik die volgorde reg land spesifieke karakter sal genereer vir jou. Probeer die volgende: Koreaanse teks as binêre Unicode lcBinStr STRCONV (Skakel na UTF-8 lcUTF8Str STRCONV (lcBinStr, 10) Maak vrystaande wyser By die gebruik van die Merker-passtuk jy jou werk verdeel tussen die CA en die ADO COM voorwerpe Let daarop dat die Merker-passtuk. s-kode bladsy eiendom is ingestel op 65001, wat verseker dat VFP kommunikeer met ADO behulp UTF-8 vir strykers. die SQL opdrag is ingestel op die Merker-passtuk eerder as die ADO Command voorwerp en die GR hanteer die opdrag parsing. dit maak dit moontlik om gebruik SQL deurgaan tipe sintaksis met ADO, as die CA die vertaling van SPT parameter sintaksis om die toepaslike ADO parameter voorwerpe hanteer. as jy graag die Merker-passtuk, kan dit jou te voorsien met volle ronde trip ondersteuning van die data. Wanneer ingestel met INSERT / UPDATE / verwyder / SELECT beveel die GR kan die volle omvang van die afgeleë verbinding vir die opdatering van 'n loper te bestuur en aangesien dit gebruik ADO en COM al jou Unicode bestuur word versorg vir jou. As jy weer soos ek al, mag jy vind dat die Merker-passtuk doesn t pas met jou bestaande besigheid voorwerp argitektuur. Ek eerder met SQL meer direk, eerder as om te werk met die gedefinieerde afgeleë oog tipe koppelvlak wat die Merker-passtuk bied. Om hierdie Ek moet nie-navraag opdragte (INSERT / UPDATE / verwyder / Stored Procedures) brand te doen direk teen ADO. Hier is 'n voorbeeld van hoe om dit te doen. Die volgende toon die rou sintaksis om 'n insetsel om ADO met Unicode data wat UTF-8 geënkodeer voer: Sommige Russiese teks - moet oorskakel na UTF-8 vir Insert lcDescriptUtf8 STRCONV (lDescriptBin, 10) oCommand. Execute (lnAffected ,, 128) geen uitslag stel Die proses moet vertroud wees vir jou nou. Enige string wat jy wil om te slaag om SQL Server moet UTF-8 geïnkripteer wees. bo die Russiese teks begin in binêre (want ek kan t plak dit in die teks), omgeskakel word na UTF-8 en dan aan 'n parameter voorwerp s Waarde eiendom in ADO. ADO is ingestel op SYS (3101,65001) sodat al die parameters geslaag as UTF-8 en intern omgeskakel na Unicode. As jy kyk na SQL Profiler sal jy sien dat ADO stuur inderdaad snare in Unicode-formaat na die bediener toe die insetsel loop. Dieselfde logika geld vir UPDATE opdragte of gestoor proses oproepe wat parameters benodig word geslaag. Let daarop dat met inheemse ADO wat jy sal hê om parameters met behulp van die ADODB. Parameter voorwerp eerder as die bekende SQL pas deur sintaksis uitdruklik toewys. Om parameter maak verby 'n bietjie makliker die voorbeeld kode wat kom met hierdie artikel verskaf 'n metode AdoAddParameter () waarmee jy slaag net die noodsaaklikhede (waarde en naam). Maak die lewe makliker met SQL Server Klas Wikkel plain SQL syntax meer konsekwent maak, ek ve het 'n paar klasse wwSQL en wwADOSQL dat 'n lae vlak SQL implementering wat werk met beide ODBC en ADO deursigtig verskaf. Die wwSQL klas is oorspronklik gebou as 'n baie dun omhulsel rondom SQL deurgaan en ek het onlangs wwADOSql met dieselfde koppelvlak bygevoeg Unicode funksies ondersteun. Die kern metodes van hierdie klas is Voer (), ExecuteNonQuery () en ExecuteStoredProcedure () plus 'n gemeenskaplike parameter implementering wat nie afhanklik is van private veranderlikes (bv. Jy kan dit rondom slaag in verspreide toepassings). Die klas bestuur ook parameter ontleding van SQL deurgaan sintaksis vir almal, maar gestoor proses noem sonder parameters, wat uitdruklik geïmplementeer moet word met behulp van ExecuteStoredProcedure (). Hierdie klas is baie nuttig as jy meer gemaklik met 'n SQL pas deur styl direkte SQL koppelvlak. Met hierdie klas SQL toegang en werk met ADO UTF-8 stringe word so eenvoudig soos: PLAASLIKE o as wwADOSql o Create () o. Verbind (o Create () o. Connect () CodePages, karakter sets, enkoderings, Locales Oh my die terminologie van globalisering is nie die maklikste om gewoond te raak aan, want dit blyk dat 'n groot deel van die terme het 'n paar oorvleuelende funksies. Karakter sets beskryf 'n versameling van fisiese karakters in 'n spesifieke tipe koppelvlak. byvoorbeeld, daar is verskeie Latyns-karakter sets, daar Cyrilliese karakter sets en verskeie Asiatiese karakter stelle soos Koreaanse. die karakter stel definieer die werklike karakters wat beskikbaar is om 'n string met behulp van die karakter stel. Kode Bladsye is kaarte van 'n spesifieke volgorde van karakters ontop van 'n karakter stel. so hoewel CODE Windows 1252 en 1251 het baie gemeen karakters, kan dieselfde charcter 'n ander posisie binne die karakter stel het (dink aan dit as 'n ander ASC () waarde). Codepages is basies nie gebruik word vir Unicode, maar is nodig vir 'n multi-byte karakter vertoë tot karakters die kaart in 'n beperkte ruimte. Locales beskryf 'n stel van lokalisering eienskappe wat bepaal hoe 'n spesifieke taal kartering word bestuur deur die stelsel . Locales Don t net hanteer skrif inligting kwessies soos karakter sets en codepages maar ook inligting hoe datums en aantal waardes vertoon, hoe valuta simbole word en of die taal gebruik links na regs of links na regs blaai. Locales sluit inligting. Elke land kaarte om 'n spesifieke taal sub taalkombinasie. Byvoorbeeld, die Amerikaanse land string identifiseerder is nl-af, terwyl die een vir Engeland is af-af. In VFP die enigste dinge wat regtig saak is CodePages en Locales hoewel jy nie t moet selfs om te weet oor Locales. VFP gebruik CodePages as sy primêre meganisme om outomatiese omskakelings uit te voer van Unicode om die huidige CODE. Unicode in Microsoft se platform is heeltemal Unicode gebaseer. Die String datatipe in 'n Unicode string en daar is geen manier om 'n string ander manier ten minste nie so tipe String skep. Die hele omgewing is Unicode gebaseerde en of jy Web aansoeke skryf of Windows Vorms aansoeke 'n aansoek word outomaties Unicode aangeskakel en kan hanteer die vertoning van 'n karakter stel wat s geïnstalleer op jou rekenaar. Byvoorbeeld, op 'n webblad wat jy net lees Request. Form () vang die waarde as 'n Unicode string en dan werk die databasis die string loop deur die stelsel volledig Unicode. Dit werk net daar is niks besonders nie jy hoef te doen. Om data met nie-Unicode omgewings of vir die skryf van data uit om lêers of strome te deel. Net het die Encoding klas. Die Encoding klas bied spesiale opnemers soos UTF-8, UTF-7, Unicode, opnemers vir 'n gemeenskaplike Windows-kode bladsye en 'n verskeidenheid van ISO-kode bladsy definisies. Die Encoding klas kan die omskakeling van snare na en van grepe of byte strome via hierdie baie nuttig en dikwels vereis klas. In vergelyking met die wat in hierdie artikel met Visual FoxPro, Unicode ondersteuning in gyrations is feitlik foutloos. As jy nodig het om 'n multi-land aansoeke bou dalk die moeite werd oorweging as 'n alternatief. Unicode Kollasie Algoritme Opsomming Hierdie verslag is die spesifikasie van die Unicode Kollasie Algoritme (UCA), wat die besonderhede van hoe om twee Unicode snare vergelyk terwyl die oorblywende conformant aan die vereistes van die Unicode standaard. Die UCA verskaf ook die standaard Unicode Kollasie Element Table (DUCET) as die data spesifiseer die verstek kollasie sodat almal Unicode-karakters. Status Hierdie dokument is deur Unicode lede en ander belangstellendes, en goedgekeur is vir publikasie deur die Unicode Consortium. Dit is 'n stabiele dokument en kan gebruik word as 'n verwysing materiaal of aangehaal word as 'n normatiewe verwysings deur ander spesifikasies. A Unicode tegniese standaard (UTS) is 'n onafhanklike spesifikasie. Nakoming van die Unicode standaard nie conformance impliseer enige UTS. Stuur asseblief corrigenda en ander kommentaar met die aanlyn verslagdoening vorm Terugvoer. Verwante inligting wat nuttig in die begrip van hierdie dokument is gevind in die Verwysings. Vir die jongste weergawe van die Unicode Standard sien Unicode. Vir 'n lys van huidige Unicode Tegniese Verslae sien Verslae. Vir meer inligting oor die weergawes van die Unicode standaard, sien weergawes. Inhoud 1 Inleiding Kollasie is die algemene term vir die proses en funksie van die bepaling van die sorteer orde van snare van karakters. Dit is 'n belangrike funksie in rekenaarstelsels wanneer 'n lys van stringe word om gebruikers, hulle is geneig om dit te wil in 'n gesorteerde volgorde sodat hulle maklik en betroubaar kan vind individuele snare. So is dit wyd gebruik word in gebruikerkoppelvlakke. Dit is ook belangrik vir databasisse, sowel in sorteer rekords en in die keuse van stelle van rekords met velde binne gegewe grense. Samestelling wissel na gelang van die taal en kultuur: Duitsers, Franse en Swede soort dieselfde karakters anders. Dit kan ook afhanklik van die spesifieke toepassing: selfs binne dieselfde taal, woordeboeke kan sorteer anders as telefoonboeke of boek indekse. Vir nie-alfabetiese skrifte soos Oos-Asiatiese ideogramme, kan inbring nie fonetiese of wat gebaseer is op die voorkoms van die karakter wees. Samestelling kan ook aangepas word volgens gebruiker voorkeur, soos ignoreer punktuasie of nie, om hoofletters voor kleinletters (of andersom), en so aan. Taalkundig korrekte soek moet dieselfde meganismes gebruik: net so tradisioneel soort asof hulle dieselfde basis brief in Sweeds, moet 'n los search haal woorde met een van hulle. Samestelling implementering moet gaan met die komplekse linguistiese konvensies vir die bestel van teks in spesifieke tale, en voorsiening te maak vir algemene veranderinge wat gebaseer is op die gebruiker voorkeure. Verder algoritmes wat dit moontlik maak vir 'n goeie prestasie is noodsaaklik vir enige samestelling meganismes om aanvaar te word in die mark. Tabel 1 toon 'n paar voorbeelde van gevalle waar volgorde verskil deur taal, gebruik, of 'n ander aanpassing. Tabel 1. Voorbeeld Verskille Tale wissel met betrekking tot watter tipe vergelykings te gebruik (en in watter volgorde hulle moet toegepas word), en in watter vorm 'n fundamentele element vir sortering. Byvoorbeeld, die Sweedse behandel as 'n individu brief, sorteer dit na Z in die alfabet Duitse egter sorteer dit óf soos LR of soos ander aksent vorme van a. dus na 'n. In Slowakye, die digraaf ch vorme asof dit 'n aparte brief na h. Voorbeelde van ander tale en skrifte in oorvloed. Tale waarvan die skryfstelsels gebruik hoofletters en klein tipies ignoreer die verskille in die geval, tensy daar is geen ander verskille in die teks. Dit is belangrik om te verseker dat kollasie ontmoet gebruiker verwagtinge so volledig as moontlik te maak. Byvoorbeeld, in die meerderheid van die Latynse taal, sorteer as 'n beklemtoonde variant van o, wat beteken dat die meeste gebruikers langs o sou verwag. Maar 'n paar tale, soos die Noorse en Deense, soort as 'n unieke element na z. Sorteer byvoorbeeld in 'n databasis seleksie van die gebruiker kan nie besef wat rekords ontbreek. Sien Afdeling 1.5, Ander Toepassings van N oorsig. Met Unicode aansoeke wyd ontplooi, veeltalige data is die reël, nie die uitsondering nie. Verder is dit meer algemeen om gebruikers met baie verskillende sorteer verwagtinge toegang tot die data te sien. Byvoorbeeld, sal 'n Franse maatskappy met kliënte oor die hele Europa sluit name van baie verskillende tale. As 'n Sweedse werknemer by hierdie Franse maatskappy die data toegang van 'n Sweedse plek maatskappy, moet die name kliënt om te wys in die volgorde waarin hierdie werknemer alhoewel daar sal baie verskillende aksent karakters wat nie normaalweg verskyn in die Sweedse teks voldoen. Vir skrifte en karakters nie gebruik word in 'n bepaalde taal, mag eksplisiete reëls nie bestaan ​​nie. Byvoorbeeld, die Sweedse en Franse het duidelik aangedui, onderskei reëls vir sortering (óf na Z of as 'n beklemtoonde karakter met 'n sekondêre verskil van 'n), maar nie definieer die volgorde van karakters soos,,,,, of. 1.1 Multi-Level vergelyking met die kompleksiteit van taal-sensitiewe sortering aan te spreek, is 'n multi-vergelyking algoritme in diens. In vergelyking van twee woorde, die belangrikste kenmerk is die identiteit van die basis briewe byvoorbeeld die verskil tussen 'n A en B. Aksent verskille word gewoonlik geïgnoreer, as die basis briewe verskil. Geval verskille (hoofletters versus klein), is tipies geïgnoreer, as die basis briewe of hul aksent verskil. Behandeling van punktuasie wissel. In sommige gevalle 'n leesteken karakter behandel soos 'n basis brief. In ander gevalle, word dit geïgnoreer of daar enige basis, aksent, of geval verskille. Daar kan ook 'n finale, valbyl vlak (genoem 'n identiese vlak), waardeur as daar geen ander verskille glad in die tou, die (genormaliseerde) kode punt orde gebruik. Tabel 2. Vergelyking Vlakke rol rol Die voorbeelde in Tabel 2 is in Engels die beskrywing van die vlakke kan ooreenstem met verskillende skryfstelsel funksies in ander tale. In elk byvoorbeeld vir vlakke T2 deur Ln, die verskille op daardie vlak (soos aangedui deur die onderstreepte karakters) is oorval deur die sterker-vlak verskille (soos aangedui deur die blou teks). Byvoorbeeld, die T2 voorbeeld toon dat verskil tussen 'n O en 'n beklemtoonde is oorval deur 'n T1 verskil (die teenwoordigheid of afwesigheid van 'n e). In die laaste voorbeeld, die stel 'n formaat karakter, wat andersins heeltemal ignorable. Die primêre vlak (T1) is vir die basiese sortering van die teks, en die nie-primêre vlakke (L2..Ln) is vir die aanpassing string gewigte vir ander taalkundige elemente in die skryf-stelsel wat belangrik is vir gebruikers in die bestel is, maar minder belangriker as die einde van die basiese sorteer. In die praktyk, kan minder vlakke nodig wees, afhangende van gebruikers voorkeure of veranderinge. 1.1.1 Kollasie Bestel en Kode Chart Bestel Baie mense verwag dat die karakters in hul eie taal te wees in die volgorde die Unicode-kode kaarte. Omdat samestelling wissel deur taal en nie net deur script, is dit nie moontlik om die kodering vir karakters te reël sodat eenvoudige binêre string vergelyking produseer die gewenste inbring sodat alle tale. Omdat multi-vlak sorteer is 'n vereiste is, is dit nie eens moontlik om die kodering vir karakters te reël sodat eenvoudige binêre string vergelyking produseer die gewenste inbring sodat 'n bepaalde taal. Aparte data tafels is nodig vir korrekte sortering orde. Vir meer inligting oor tailorings vir verskillende tale, sien CLDR. Die basiese beginsel is om te onthou is: die posisie van die karakters in die Unicode-kode kaarte nie hul volgorde spesifiseer. 1.2 Kanoniese Ekwivalensie Daar is baie gevalle in Unicode waar twee rye van karakters is kerkwetlik ekwivalent: die rye in wese verteenwoordig dieselfde teks, maar met verskillende werklike rye. Vir meer inligting, sien UAX15. Rye wat kerkwetlik ekwivalent moet dieselfde sorteer. Tabel 3 gee 'n paar voorbeelde van kerkwetlik ekwivalent rye. Byvoorbeeld, is die Angstrom teken geïnkripteer vir verenigbaarheid, en is kerkwetlik gelykstaande aan 'n A-ring. Laasgenoemde is ook gelykstaande aan die ontbinde volgorde van 'n plus die kombinasie ring karakter. Die orde van sekere kombinasie van punte is ook irrelevant in baie gevalle so sulke rye moet ook dieselfde gesorteer, soos in die tweede voorbeeld. Die derde voorbeeld toon 'n kalm karakter wat kan ontbind word in vier verskillende maniere, wat almal kerkwetlik ekwivalent. Tabel 3. Kanoniese Ekwivalensie U 0075 LATIN kleinletter U, U 0323 KOMBINERING kol onder, U 031B KOMBINERING HORN 1.3 kontekssensitiwiteit Daar is bykomende komplikasies in sekere tale, waar die vergelyking is konteks-sensitiewe en hang af van meer as net enkele karakters direk teen vergelyking mekaar, soos in Tabel 4. Die eerste voorbeeld van so 'n komplikasie bestaan ​​uit kontraksies. waar twee (of meer) karakters soort asof hulle 'n enkele basis brief. In die tabel hieronder, CH optree soos 'n enkele brief gesorteer na C. Die tweede voorbeeld bestaan ​​uit uitbreidings. waar 'n enkele karakter sorteer asof dit 'n reeks van twee (of meer) karakters. In die tabel hieronder, 'n ligatuur vorme asof dit die volgorde van O E. Beide kontraksies en uitbreidings kan gekombineer word: dit wil sê, kan twee (of meer) karakters sorteer asof hulle 'n ander volgorde van twee (of meer) karakters. In die derde voorbeeld, vir die Japannese, 'n lengte merk vorme met slegs 'n tersiêre verskil van die vokaal van die vorige woord: as 'n na KA en as 'n B na KI. Tabel 4. Konteks Sensitiwiteit H CZ Sommige tale het bykomende oddities in die manier waarop hulle soort. Gewoonlik, alle verskille in sortering beoordeel van die begin af tot die einde van die tou. As al die base letters is dieselfde, die eerste aksent verskil bepaal die finale bevel. In ry 1 van Tabel 5. die eerste aksent verskil is op die o. so dit is wat die einde bepaal. In sommige Franse woordeboek bestel tradisies, maar dit is die laaste aksent verskil dat die bevel bepaal, soos aangetoon in ry 2. Tabel 5. Terugwaartse Aksent Bestel Normale Aksent Bestel Cote CT Terugwaartse Aksent Bestel Cote CT 1.4 Aanpassing In die praktyk is daar bykomende kenmerke van samestelling wat gebruikers moet beheer. Hierdie is uitgespreek in die gebruiker-koppelvlakke en uiteindelik in APIs. Ander veranderinge of voorkeure gebruiker sluit die volgende in: taal. Dit is die belangrikste kenmerk, want dit is van kardinale belang dat die samestelling ooreenstem met die verwagtinge van die gebruikers van die doeltaal gemeenskap. Sterkte. Dit verwys na die aantal vlakke wat in vergelyking met in ag geneem word, en is nog 'n belangrike eienskap. Die meeste van die tyd 'n drie-vlak krag is nodig vir 'n vergelyking van snare. In sommige gevalle sal 'n groter aantal vlakke nodig wees, terwyl dit in ander minder vlakke sal wense oor. Geval Bestel. Sommige woordeboeke en skrywers versamel hoofletters voor kleinletters terwyl ander die teenoorgestelde te gebruik, sodat voorkeur moet aanpas om te wees. Soms is die geval bestel 'n mandaat van die regering, soos in Denemarke. Dikwels is dit bloot 'n aanpassing of gebruiker voorkeur. Leestekens. Nog 'n algemene opsie is of te behandel punktuasie (insluitend spasies) as basis karakters of sulke karakters te behandel as net 'n vlak 4 verskil. - Gebruiker gedefinieerde reëls. Sulke reëls voorsien gespesifiseerde resultate vir gegewe kombinasies van letters. Byvoorbeeld, in 'n indeks, kan 'n skrywer wil simbole gesorteer asof hulle dus is uitgespel het. Saamgesmelte Tailorings. .


No comments:

Post a Comment