<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Apr 20, 2017 at 12:17 PM, Robert Kern <span dir="ltr"><<a href="mailto:robert.kern@gmail.com" target="_blank">robert.kern@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="h5">On Thu, Apr 20, 2017 at 12:05 PM, Stephan Hoyer <<a href="mailto:shoyer@gmail.com" target="_blank">shoyer@gmail.com</a>> wrote:<br>><br>> On Thu, Apr 20, 2017 at 11:53 AM, Robert Kern <<a href="mailto:robert.kern@gmail.com" target="_blank">robert.kern@gmail.com</a>> wrote:<br>>><br>>> I don't know of a format off-hand that works with numpy uniform-length strings and Unicode as well. HDF5 (to my recollection) supports arrays of NULL-terminated, uniform-length ASCII like FITS, but only variable-length UTF8 strings.<br>><br>><br>> HDF5 supports two character sets, ASCII and UTF-8. Both come in fixed and variable length versions:<br>> <a href="https://github.com/PyTables/PyTables/issues/499" target="_blank">https://github.com/PyTables/<wbr>PyTables/issues/499</a><br>> <a href="https://support.hdfgroup.org/HDF5/doc/Advanced/UsingUnicode/index.html" target="_blank">https://support.hdfgroup.org/<wbr>HDF5/doc/Advanced/<wbr>UsingUnicode/index.html</a><br>><br>> "Fixed length UTF-8" for HDF5 refers to the number of bytes used for storage, not the number of characters.<br><br></div></div>Ah, okay, I was interpolating from a quick perusal of the h5py docs, which of course are also constrained by numpy's current set of dtypes. The NULL-terminated ASCII works well enough with np.string's semantics.<br></div></blockquote><div><br></div><div>Yes, except that on Python 3, "Fixed length ASCII" in HDF5 should correspond to a string type, not np.string_ (which is really bytes).</div></div></div></div>