Sign in to follow this  
Followers 0
leuce

Adding a BOM (byte order mark) for UTF8

1 post in this topic

G'day everyone

I'm just sharing my method of adding a BOM to UTF8 files that don't have them. I often deal with files from Linux people and them Linux folks just don't know what a BOM is for. Anyway, enough talk.

; File without BOM is foo.txt
; New file with BOM is foo2.txt

$fileopen = FileOpen ("foo.txt", 16)
$fileread = FileRead ($fileopen)
FileClose ($fileopen)

$newfile = FileOpen ("foo2.txt", 18)
$bin = StringToBinary("")
FileWrite ($newfile,  $bin & $fileread)
FileClose ($newfile)

; ==

; File without BOM is foo.txt
; New file with BOM is also foo.txt

$fileopen = FileOpen ("foo.txt", 16)
$fileread = FileRead ($fileopen)
FileClose ($fileopen)

$newfile = FileOpen ("foo.txt", 18)
$bin = StringToBinary("")
FileWrite ($newfile,  $bin & $fileread)
FileClose ($newfile)

; ==

; File without BOM is foo.txt
; File without BOM is backed up
; New file with BOM is also foo.txt

$foofile = "foo.txt"

$fileopen = FileOpen ("foo.txt", 16)
$fileread = FileRead ($fileopen)
FileClose ($fileopen)

$backup = FileOpen ("backup_" & $foofile, 18)
FileWrite ($backup, $fileread)
FileClose ($backup)

$newfile = FileOpen ("foo.txt", 18)
$bin = StringToBinary("")
FileWrite ($newfile,  $bin & $fileread)
FileClose ($newfile)

Not very fancy but useful to have somewhere when you want to paste it in a new script.

I haven't figured out how to check if a file has a BOM or not, though. I mean, I have a way to do it but it involves using additional tools. It would be cool to be able to check a file for a BOM using only AutoIt.

Samuel

(and just to show that I'm a real newbie: http://leuce.com/tempfile/omtautoit/ )

Share this post


Link to post
Share on other sites



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0