PureBasic
PureBasic
Write utf-8 CSV Compatible with Excel
See more CSV Examples
A CSV containing non-English characters that is saved using the utf-8 character encoding must include a BOM (also known as a preamble) if it is to be correctly loaded into Excel. See https://en.wikipedia.org/wiki/Byte_order_markThis example shows how to save the CSV to a file using utf-8 with a BOM.
Note: This example requires Chilkat v9.5.0.93 or later.
Chilkat PureBasic Downloads
IncludeFile "CkCsv.pb"
Procedure ChilkatExample()
success.i = 0
; This example program loads a file (japanese.csv)
; that contains this content:
;
; year,color,country,food
; 2001,red,France,cheese
; 2005,blue,"United States",hamburger
; 2008,green,Italy,pasta
; 1998,orange,Japan,sushi
; 2010,silver,"太志","森田"
;
csv.i = CkCsv::ckCreate()
If csv.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkCsv::setCkHasColumnNames(csv, 1)
success = CkCsv::ckLoadFile2(csv,"qa_data/csv/test.csv","utf-8")
If success <> 1
Debug CkCsv::ckLastErrorText(csv)
CkCsv::ckDispose(csv)
ProcedureReturn
EndIf
; To save the CSV using utf-8 with a BOM/preamble,
; add "EMIT_BOM" to the UncommonOptions.
; (This feature was added in Chilkat v9.5.0.93)
CkCsv::setCkUncommonOptions(csv, "EMIT_BOM")
success = CkCsv::ckSaveFile2(csv,"qa_output/test.csv","utf-8")
If success <> 1
Debug CkCsv::ckLastErrorText(csv)
CkCsv::ckDispose(csv)
ProcedureReturn
EndIf
Debug "OK, try to load the CSV in Excel to see if the non-English chars are correct."
CkCsv::ckDispose(csv)
ProcedureReturn
EndProcedure