@@ -79,7 +79,7 @@ public class StringDataset: Dataset {
7979
8080 for pointer in data {
8181 if let pointer = pointer {
82- strings. append ( String ( cString : pointer) )
82+ strings. append ( String ( utf8String : pointer) ! )
8383 } else {
8484 strings. append ( " " )
8585 }
@@ -100,7 +100,7 @@ public class StringDataset: Dataset {
100100 let stringSize = size / count
101101
102102 // Add one extra null byte per string entry to ensure zero
103- // padding when parsing to Swift string using String(cString :) below
103+ // padding when parsing to Swift string using String(utf8String :) below
104104 let paddedStringSize = stringSize + 1
105105 let type = Datatype . createString ( size: paddedStringSize)
106106
@@ -116,7 +116,7 @@ public class StringDataset: Dataset {
116116 strings. reserveCapacity ( count)
117117 for idx in 0 ..< count {
118118 let index = idx * type. size
119- let string = String ( cString : pointer. baseAddress! + index)
119+ let string = String ( utf8String : pointer. baseAddress! + index) !
120120 strings. append ( string)
121121 }
122122 return strings
@@ -192,6 +192,7 @@ extension GroupType {
192192 precondition ( dataspace. dims. count == chunkDimensions. count)
193193
194194 let plist = H5Pcreate ( H5P_CLS_DATASET_CREATE_ID_g)
195+ H5Pset_char_encoding ( plist, H5T_CSET_UTF8)
195196 let chunkDimensions64 = chunkDimensions. map ( { hsize_t ( bitPattern: hssize_t ( $0) ) } )
196197 chunkDimensions64. withUnsafeBufferPointer { ( pointer) -> Void in
197198 H5Pset_chunk ( plist, Int32 ( chunkDimensions. count) , pointer. baseAddress)
0 commit comments