#include "hdf5.h" #include #include void main(int argc, char** argv) { char* aname = "\xce\xbc\0"; /* mu */ char* value = "r\xc3\xa9sum\xc3\xa9\0"; /* resume (with accents) */ hid_t acpl, strtype, fsp, file, attr; acpl = H5Pcreate(H5P_ATTRIBUTE_CREATE); assert(acpl >= 0); assert(H5Pset_char_encoding(acpl, H5T_CSET_UTF8) >= 0); strtype = H5Tcreate(H5T_STRING, H5T_VARIABLE); assert(strtype >= 0); assert(H5Tset_cset(strtype, H5T_CSET_UTF8) >= 0); fsp = H5Screate(H5S_SCALAR); assert(fsp >= 0); file = H5Fcreate("unicode.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); attr = H5Acreate2(file, aname, strtype, fsp, acpl, H5P_DEFAULT); assert(attr >= 0); assert(H5Awrite(attr, strtype, &value) >= 0); assert(H5Aclose(attr) >= 0); assert(H5Sclose(fsp) >= 0); assert(H5Fclose(file) >= 0); assert(H5Tclose(strtype) >= 0); assert(H5Pclose(acpl) >= 0); }