Saturday 25 November 2017

Libiconv 1 14 Binære Alternativer


Linux og Unix dos2unix og unix2dos-kommandoer Om dos2unix og unix2dos Dos2unix-pakken inneholder verktøyene dos2unix og unix2dos for å konvertere vanlige tekstfiler i DOS - eller Mac-format til Unix-format. og vice versa. Beskrivelse I DOSWindows tekstfiler, en linjeskift. også kjent som newline. er en kombinasjon av to tegn: en Carriage Return (CR) etterfulgt av en Line Feed (LF). I Unix tekstfiler er en linjeskift et enkelt tegn: Linjestrømmen (LF). I Mac-tekstfiler, før Mac OS X. var en linjeskift et enkelt Carriage Return (CR) - tegn. I dag bruker Mac OS linjeskift av Unix-stil (LF). Binære filer blir automatisk hoppet over, med mindre konvertering er tvunget. Ikke-vanlige filer, for eksempel kataloger og FIFOer. blir automatisk hoppet over. Symboliske koblinger og deres mål blir som regel uberørt. Symboliske koblinger kan eventuelt byttes ut, eller utgangen kan skrives til det symbolske koblingsmålet. Symboliske lenker på Windows støttes ikke. Windows-symbolske lenker blir alltid erstattet, og målene holdes uendret. Dos2unix ble modellert etter dos2unix under SunOSSolaris og har lignende konverteringsmoduser. unix2dos og dos2unix syntax Behandle alle alternativer som følger som filnavn. Bruk dette alternativet, for eksempel hvis du vil konvertere filer hvis navn starter med et dash. Så, for å konvertere en fil som heter - foo, kan du bruke denne kommandoen: dos2unix - - foo Eller i ny filmodus: dos2unix - n - - foo out. txt I normal modus blir linjeskift konvertert fra DOS til Unix og vice versa. Mac linjeskift er ikke konvertert. I Mac-modus blir linjeskift konvertert fra Mac til Unix og omvendt. DOS-linjebrudd endres ikke. For å kjøre i Mac-modus, bruk kommandolinjevalg - c mac eller bruk kommandoene mac2unix eller unix2mac. Konverteringsmoduser I modus som bare linjeskift konverteres. Dette er standard konverteringsmodus. Selv om navnet på denne modusen er ASCII. som er en 7-bit standard, er den faktiske modusen 8 bit. Bruk alltid denne modusen når du konverterer Unicode UTF-8-filer. I denne modusen konverteres alle 8-bits ikke-ASCII-tegn (med verdier fra 128 til 255) til en 7-biters plass. Tegn konverteres mellom et DOS tegnsett (kodeside) og ISO-tegnsett ISO-8859-1 (Latin-1) på Unix. DOS-tegn uten ISO-8859-1-ekvivalent, for hvilken konvertering ikke er mulig, konverteres til en prikk. Det samme teller for ISO-8859-1 tegn uten DOS-motpart. Når bare alternativet - iso er brukt, vil dos2unix forsøke å bestemme den aktive kodesiden. Når dette ikke er mulig, vil dos2unix bruke standard kode side CP437, som hovedsakelig brukes i USA. For å tvinge en bestemt kodeside, bruk alternativer -437 (USA), -850 (Vest-Europeisk), -860 (Portugisisk), -863 (Fransk Kanadisk), eller -865 (Norden). Windows-kodesiden CP1252 (Vesteuropeisk) støttes også med alternativ -1252. For andre kodesider bruk dos2unix i kombinasjon med iconv. iconv kan konvertere mellom en lang liste med tegnkodinger. Bruk aldri ISO-konvertering på Unicode-tekstfiler. Det vil ødelegge UTF-8 kodede filer. Konverter fra DOS-standardkodesiden til Unix Latin-1: Konverter fra DOS CP850 til Unix Latin-1: Konverter fra Windows CP1252 til Unix Latin-1: Konverter fra Windows CP1252 til Unix UTF-8 (Unicode): Konverter fra Unix Latin - 1 til DOS standardkodeside: Konverter fra Unix Latin-1 til DOS CP850: Konverter fra Unix Latin-1 til Windows CP1252: Konverter fra Unix UTF-8 (Unicode) til Windows CP1252: MERK: Konverteringsmodi ascii. 7bit. og iso ligner på dos2unixunix2dos under SunOSSolaris. Det finnes forskjellige Unicode-kodinger. På Unix og Linux Unicode-filer er vanligvis kodet i UTF-8-koding. På Windows Unicode kan tekstfiler kodes i UTF-8, UTF-16 eller UTF-16 big endian. men er for det meste kodet i UTF-16-format. Unicode tekstfiler kan ha DOS, Unix eller Mac linjeskift, som vanlige tekstfiler. Alle versjoner av dos2unix og unix2dos kan konvertere UTF-8 kodede filer, fordi UTF-8 ble designet for bakoverkompatibilitet med ASCII. dos2unix og unix2dos med Unicode UTF-16 støtte kan lese små og store endiske UTF-16 kodede tekstfiler. For å se om dos2unix ble bygget med UTF-16 støttetype dos2unix - V. Windows-versjonene av dos2unix og unix2dos konverterer UTF-16 kodede filer til UTF-8 kodede filer. Unix-versjoner av dos2unixunix2dos konverterer UTF-16 kodede filer til lokaltekstkodingen når den er satt til UTF-8. Bruk kommandoen locale for å finne ut hva den lokale karakterkodingen er. Fordi UTF-8 formaterte tekstfiler er godt støttet på både Windows og Unix, har dos2unix og unix2dos ikke noe valg for å skrive UTF-16-filer. Alle UTF-16-tegn kan være kodet i UTF-8. Konvertering fra UTF-16 til UTF-8 er uten tap. UTF-16-filer hoppes over på Unix når lokaltekstkodingen ikke er UTF-8, for å forhindre utilsiktet tap av tekst. Når en konverteringsfeil UTF-16 til UTF-8 oppstår, for eksempel når UTF-16-inngangsfilen inneholder en feil, hoppes filen over. ISO - og 7-biters moduskonvertering fungerer ikke på UTF-16-filer. Byte-ordremerke på Windows Unicode-tekstfiler har vanligvis et byteordre (BOM), fordi mange Windows-programmer (inkludert Notisblokk) legger til BOM som standard. Se også en. wikipedia. orgwikiByteordermark. På Unix Unicode-filer har vanligvis ikke en BOM. Det antas at tekstfiler er kodet i lokaltekstkodingen. dos2unix kan bare oppdage om en fil er i UTF-16-format hvis filen har en BOM. Når en UTF-16-fil ikke har en BOM, vil dos2unix se filen som en binær fil. Bruk dos2unix i kombinasjon med iconv for å konvertere en UTF-16-fil uten BOM. Dos2unix skriver aldri en BOM i utdatafilen, med mindre du bruker alternativet - m. Unix2dos skriver en BOM i utdatafilen når inngangsfilen har en BOM, eller når alternativet - m er brukt. Konverter fra Windows UTF-16 (med BOM) til Unix UTF-8: Konverter fra Windows UTF-16 (uten BOM) til Unix UTF-8: Konverter fra Unix UTF-8 til Windows UTF-8 med BOM: Konverter fra Unix UTF -8 til Windows UTF-16: Rekursiv konvertering Bruk dos2unix i kombinasjon med finn - og xarg-kommandoerene for å rekursivt konvertere tekstfiler i en katalogstruktur. For eksempel å konvertere alle. txt-filer i katalogtreet under gjeldende katalogtype: Lokalisering Det primære språket er valgt med miljøvariabelen LANG. LANG-variabelen består av flere deler. Den første delen er i små bokstaver språkkoden. Den andre er valgfri og er landskoden i store bokstaver, foran en underskrift. Det er også en valgfri tredje del: tegnkoding, foran en prikk. Et par eksempler på POSIX standard type skaller: På Unix-systemer kan du bruke til å kommandere lokale for å få lokalspesifikke opplysninger. Med LANGUAGE-miljøvariabelen kan du angi en prioritetsliste over språk, adskilt av kolonner. Dos2unix gir preferanse til LANGUAGE over LANG. For eksempel, først nederlandsk og deretter tysk: LANGUAGEnl: de. Du må først aktivere lokalisering ved å sette LANG (eller LCALL) til en annen verdi enn C, før du kan bruke en prioritetsliste for språk gjennom LANGUAGE-variabelen. Se også gettext manualen: gnu. orgsoftwaregettextmanualgettext. htmlThe-LANGUAGE-variabelen Hvis du velger et språk som ikke er tilgjengelig, får du de vanlige engelske meldingene. Med miljøvariabelen DOS2UNIXLOCALEDIR kan LOCALEDIR-settet under kompilering overstyres. LOCALEDIR brukes til å finne språkfiler. GNU standardverdien er usrlocalsharelocale. Alternativ - versjon vil vise LOCALEDIR som brukes. Returnerer verdier På suksess returneres null. Når en systemfeil oppstår, vil den siste systemfeilen bli returnert. For andre feil returneres 1. Returverdien er alltid null i stille modus, unntatt når feil kommandolinjealternativer brukes. unix2dos og dos2unix eksempler Få innspill fra stdin og skriv utdata til stdout. Begge de ovennevnte kommandoene vil gjøre det samme: konverter og erstatt både a. txt og b. txt i en kommando. Konverterer og erstatter a. txt mens du holder original datostempel. Jeg vil bygge et statisk bibliotek (.LIB-fil) GNU libiconv på Windows som skal brukes sammen med andre biblioteker i Visual C. Andre biblioteker jeg bruker er bygget med MultiThreaded DLL (MD) Runtime alternativ. Så, jeg trenger å bygge libiconv med samme alternativ. Problemet er at libiconv bruker GNU build-system og jeg vil kompilere med MD-alternativ. Du kan se kildestrukturen til libiconv her: cvs. savannah. gnu. orgviewvclibiconvrootlibiconv Mr. Zlatkovic vedlikeholder Windows-porten til GNU libiconv for libxml2 du kan se dem her: Jeg kan ikke bruke porten hans. Jeg må bygge fra den nyeste versjonen av libiconv-1.13. Jeg lurer på hvordan denne fyren har portet det. Kan noen fortell meg hvordan å bygge. lib fra dette og kompilere det ved hjelp av MSVC Faktisk må jeg bygge noen få gnu-biblioteker med samme innstillinger. Så, hvis jeg får løsning for ett bibliotek. Jeg kan gjøre det samme for alle andre. Et lite tillegg til ditt svar. Jeg hadde det samme problemet og fant ut at MinGW MSYS-løsningen var perfekt. Selv om jeg trengte å gå litt lenger og generere også. lib filen for å kunne koble til den resulterende dll. Dette er det jeg fant: generer en. def-fil fra dll med dumpbin (et Visual Studio-verktøy). generer. lib-filen fra. def med lib-programmet (Visual Studio-verktøyet for). Dette lar deg spesifisere noen koblingsflagger om nødvendig. Alt er detaljert her (jeg er ikke forfatteren av denne metoden): wiki. videolan. orgGenerateLibFromDll Jeg innså også at dette libdll-paret kan kobles sammen med både MD - og MDd-biblioteker. Håper det kan hjelpe folk som finner dette innlegget, som det hjalp meg. kompilere dem ved å bruke MinGW ved å bruke Msys for miljøet om nødvendig. MinGWs. a filer er tilsynelatende, ifølge postlisten, det samme formatet som. lib-filer (bare gjør et nytt navn). Du vil kanskje sjekke først for å se om ikonet statisk bibliotek er inkludert allerede i MinGW nedlasting filsystem. Rediger: det er i msys (C: msys1.0lib), sammen med: libiconv-2.dll (i C: msys1.0localbin) Rediger: er det her, libiconv du trenger disse versjonene ser ut til å ha MSVC makefiles :) opensource. applesourcelibiconv svaret apr 28 10 kl 22:03, men hvordan skulle jeg kjøre .47konfigurer som er et shell-script Mer over, hvordan ville jeg gi quotMultiThreaded DLLquot Runtime-alternativet til g-kompilatoren til MinGW. ndash klør 28 april 10 kl 22:07 Du kan ikke møte det samme problemet med MinGW toolchain, som utvikleren prøver å unngå. I utgangspunktet gjør det multithreaded-alternativet for MSVC-kompilatorlinkeren at DLL kan bruke flere hauger i stedet for en enkelt haug, fra et raskt blikk, og forhindrer at problemer oppstår. ndash Chris Dennett 28 april 10 kl 22: 14Introduksjon Få programvaren Internasjonal tekst er for det meste kodet i Unicode. Av historiske årsaker er det imidlertid noen ganger fortsatt kodet ved hjelp av et språk eller landavhengig karakterkoding. Med fremkomsten av internett og den hyppige utvekslingen av tekst over landene - selv visning av en nettside fra et fremmed land er en tekstutveksling i denne sammenheng - har konverteringer mellom disse kodene blitt en nødvendighet. Spesielt opererer datamaskiner med Windows-operativsystemet fortsatt i lokal med en tradisjonell (begrenset) tegnkoding. Noen programmer, som mailere og nettlesere, må kunne konvertere mellom en gitt tekstkoding og brukerens koding. Andre programmer internt lagrer strenger i Unicode, for å lette intern behandling, og må konvertere mellom intern strengrepresentasjon (Unicode) og ekstern strengrepresentasjon (en tradisjonell koding) når de gjør IO. GNU libiconv er et konverteringsbibliotek for begge typer applikasjoner. Dette biblioteket gir en iconv () implementering, for bruk på systemer som ikke har en, eller hvis implementering ikke kan konvertere fra Unicode. Den støtter kodene: europeiske språk ASCII, ISO-8859, KOI8-R, KOI8-U, KOI8-RU, CP, CP, Mac, Mac, Macintosh Semitiske språk ISO-8859-, CP, CP862, Mac japansk EUC-JP, SHIFTJIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1, ISO-2022-JP-MS Kinesisk EUC-CN, HZ, GBK, CP936, GB18030, BIG5-HKSCS: 2001, BIG5-HKSCS: 1999, ISO-2022-CN, ISO-2022-CN-EXT Koreansk EUC-KR, CP949, BIG5-HKSCS: 2004, BIG5-HKSCS: ISO-2022-KR, JOHAB Armensk ARMSCII-8 Georgian-Georgian-akademiet, Georgisk-PS Tadsjikisk KOI8-T Kasakh PT154, RK1048 Thai ISO-8859-11, TIS-620, CP874, MacThai Laotisk MuleLao-1, CP1133 Vietnamesisk VISCII, TCVN, CP1258 Plattformspesifikasjoner HP-ROMAN8, NEXTSTEP Full Unicode UTF-8 UCS-2, UCS-2BE, UCS-2LE UCS-4, UCS-4BE, UCS-4LE UTF-16, UTF-16BE, UTF-16LE UTF - 32, UTF-32BE, UTF-32LE UTF-7 C99, JAVA Full Unicode, i form av uint16t eller uint32t (med maskinavhengig endianhet og justering) UCS-2-INTERN, UCS-4-INTERN eller w diagram (med maskinavhengig endianhet og justering, og med OS og lokalavhengige semantikk) char, wchart Det tomme kodingsnavnet er ekvivalent med char: det angir den lokale avhengige tegnkodingen. Når den er konfigurert med alternativet - en-ekstra-koding. Det gir også støtte til noen ekstra kodinger: europeiske språk CP Semitiske språk CP864 japansk EUC-JISX0213, ShiftJISX0213, ISO-2022-JP-3 Kinesisk BIG5-2003 (eksperimentell) Turkmen TDS565 Platformspesifikasjoner ATARIST, RISCOS-LATIN1 Den kan konverteres fra noen av disse kodene til noen andre, gjennom Unicode-konvertering. Den har også begrenset støtte for transliterering, dvs. når et tegn ikke kan representeres i måltekstsettet, kan det tilnærmet gjennom en eller flere lignende tegn. Oversettering aktiveres når TRANSLIT legges til målkodingsnavnet. libiconv er for deg hvis din søknad trenger å støtte flere tegnkodinger, men den støtten mangler fra systemet ditt. Installasjon Som vanlig for GNU-pakker: Etter installering av GNU libiconv for første gang, anbefales det å kompilere og installere GNU gettext, slik at det kan utnytte libiconv. På andre systemer enn GNULinux, vil ikonv-programmet bare bli internasjonalisert hvis GNU gettext er blitt bygget og installert før GNU libiconv. Dette betyr at første gang GNU libiconv er installert, har vi en sirkulær avhengighet mellom GNU libiconv og GNU gettext-pakker, som kan løses ved å bygge og installere enten første libiconv, deretter gettext, deretter libiconv igjen eller (på systemer som støtter delt biblioteker, unntatt AIX) første gettekst, deretter libiconv, og deretter få tekst igjen. Husk at før du bygger en pakke for andre gang, må du slette sporene til den første bygningen ved å kjøre, gjør distrert. Dette biblioteket kan bygges og installeres i to varianter: Biblioteksmodus. Dette fungerer på alle systemer, og bruker et bibliotek libiconv. so og en header-fil lticonv. hgt. (Begge er installert gjennom make install.) For å bruke det, bare ta med lticonv. hgt og bruk funksjonene. For å bruke den i en autokonfigureringspakke: Hvis du ikke bruker automake, legg til m4iconv. m4 til din aclocal. m4-fil. Hvis du bruker automake, legger du til m4iconv. m4 i makroarkivet m4. Legg til lenke kommandolinjen i biblioteker og kjørbare som bruker funksjonene plassholderen LIBICONV (eller, hvis du bruker libtool for linken, LTLIBICONV). Hvis du bruker automake, er det rette stedet for disse tilleggene LDADD-variablene. Merk at ikonv. m4 også er en del av GNU gettext-pakken, som installerer den i usrlocalshareaclocaliconv. m4. Libc plugoverride-modusen. Dette fungerer bare på GNULinux, Solaris og OSF1-systemer. Det er en måte å få god iconv-støtte uten å ha glibc-2.1. Det installerer et bibliotek preloadablelibiconv. so. Dette biblioteket kan brukes med LDPRELOAD, for å overstyre ikonv-funksjonene som er tilstede i C-biblioteket. På GNULinux og Solaris: På OSF1: En programkilde trenger ikke endres, programmet trenger ikke engang å bli kompilert. Bare sett LDPRELOAD miljøvariabelen, det er den. Libiconv - og libcharset-biblioteker og deres headerfiler er under LGPL. Ikonv-programmet er under GPL. De nyeste utviklingskildene kan fås gjennom savanna-prosjektet. Dokumentasjon Feilrapporter Vennligst send generell FSF amp GNU henvendelser til ltgnugnu. orggt. Det er også andre måter å kontakte FSF på. Vennligst send ødelagte koblinger og andre rettelser eller forslag til ltbug-gnu-libiconv-antispam 64 antispam. gnu. orggt. Copyright (C) 1998, 2017 Free Software Foundation, Inc. Verbatim kopiering og distribusjon av hele denne artikkelen er tillatt i ethvert medium, forutsatt at denne kunngjøringen er bevart. Sist oppdatert: Dato: 20170211 13:30:21 Forfatter: haible

No comments:

Post a Comment