Sample code for 30+ languages & platforms
PureBasic

Convert a File's Character Encoding from UTF-8 to UFT-8-BOM

See more HTML-to-XML/Text Examples

To add a utf-8 BOM to a file is just a matter of prepending these 3 bytes to the file: 0xEF 0xBB 0xBF.

This may be difficult in some programming languages, or it may be trivial in either. Therefore, the Chilkat solution you see here might be helpful, or in a language such as C++, the Chilkat solution isn't really necessary because it's easy to do yourself.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkCharset.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example assumes the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    charset.i = CkCharset::ckCreate()
    If charset.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkCharset::setCkFromCharset(charset, "utf-8")
    CkCharset::setCkToCharset(charset, "bom-utf-8")

    success = CkCharset::ckConvertFile(charset,"qa_data/txt/helloWorld.txt","qa_output/helloWorldBom.txt")
    If success <> 1
        Debug CkCharset::ckLastErrorText(charset)
        CkCharset::ckDispose(charset)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkCharset::ckDispose(charset)


    ProcedureReturn
EndProcedure