| Kolla text kodning med PHP | E-post |
|
Ibland kommer undertexter i formatet ISO-8859-1. Ibland som UTF-8. Nedanstående script (kallat enc) är skrivet i PHP och gör ett försök att könna av vilken teckenkodning en fil använder sig av. #!/usr/bin/php -q <?php if($argc != 2 || in_array($argv[1], array('--help','-help','-h'))) { print "USAGE: enc filename\n"; } else { $FILENAME = $argv[1]; # open, read (no sanity check) $CONTENT = fread(fopen($FILENAME, "r"), filesize($FILENAME)); $ENCODING = mb_detect_encoding($CONTENT, 'UTF-8, ISO-8859-1'); print $ENCODING . "\n"; } ?> Anta att jag har filen hls-babel.srt och vill se till att jag har både ISO och UTF varianter av undertexten. $ enc hls-babel.srt UTF-8 $ iconv -f UTF8 -t ISO88591 -o hls-babel.iso.srt hls-babel.srt Först kollar jag alltså med scriptet vilken teckenkodning filen använder sig av. Sedan konverterar jag filen till en alternativ teckenkodning med iconv. Här använder sig BASH av enc för att skapa en alternativ textfil srt-conv #!/bin/bash FILENAME=$1 PREFIX=${FILENAME%%.*} SUFFIX=${FILENAME#*.} ENCODING=`enc $FILENAME` case "$ENCODING" in "UTF-8" ) echo "creating $PREFIX.iso.srt" iconv -f UTF8 -t ISO88591 -o $PREFIX.iso.srt $FILENAME exit 0 ;; "ISO-8859-1" ) echo "creating $PREFIX.utf.srt" iconv -f ISO88591 -t UTF8 -o $PREFIX.utf.srt $FILENAME exit 0 ;; * ) echo "Encoding not recognized ($ENCODING)" exit 1 ;; esac Med exemplet vill jag peka på möjligheten att känna av teckenkodning och skapa alternativ undertext. För större användbarhet bör felkontroller byggas in i scripten såsom felaktigt angivna filnamn, namnkrock med redan existerande filnamn o.dyl. För att skapa alternativ undertext av alla srt-filer i en katalog kan man skriva : Kommentarer (0)
![]() Skriv kommentar
|
| < Föregående |
|---|





