<div dir="ltr">I think my original pre-proposal has a significant flaw and needs to be revised.<div>The problem is: charset needs to be specifiable for all char arrays, regardless of whether the values should be interpreted as Strings or individual chars.</div><div><br></div><div>I see two basic solutions:<br></div><div><br></div><div>1) Two attributes, but a given variable would only use one of them. The first part of the attribute name specifies the data type:</div><div>  char_charset = "ISO-8859-1";   //identifies a char variable using ISO-8859-1</div><div>or</div><div>  string_charset = "ISO-8859-1";   //identifies a String variable using ISO-8859-1</div><div><br></div><div>2) Two attributes that would both be specified for every char/String variable, e.g.,</div><div>  charset = "ISO-8859-1";</div><div>  data_type = "String";             //or "char"</div><div><br></div><div>In either case, the charsets allowed for char (not String) data must be restricted to single code page (e.g, "ISO-8859-1") because other encodings (e.g., "UTF-8") need multiple bytes for some characters..</div><div><br></div><div>---</div><div>I have a slight preference (2), because it is cleaner and might be better in the future (I don't know the implications for nc4 and CF2).</div><div><br></div><div>Thoughts? Votes?</div><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 6, 2017 at 3:08 PM, Bob Simons - NOAA Federal <span dir="ltr"><<a href="mailto:bob.simons@noaa.gov" target="_blank">bob.simons@noaa.gov</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>Before I make a formal CF proposal for a "charset" attribute, I would like to get comments and suggestions from all of you.</div><div><br></div><div>This is a proposal to solve the problem of distinguishing strings from arrays of characters and the problem of identifying the string's character encoding. Presumably, it would be appended to section 2.2.</div><div><br></div><div>An example of actual need is: Many/most current uses of multidimensional char arrays are intended to be interpreted as Strings. But some files, e.g., Argo profile float profiles, have single char data that are stored in char arrays. </div><div><br></div><div>Another example, while most nc files just use 7-bit ASCII characters in strings, some use 8-bit characters. Some such files appear to use charset=Windows-1252, others use Mac OS Roman, others use ISO-8859-1, but the the charset is not specified and there is currently no official CF way to specify it.</div><div><br></div><div>Another advantage of this proposal is that it provides a way to support Unicode (and thus all of the world's languages) via the UTF-8 encoding which is useful as we increasingly work with people from non-US, non-European countries.</div><div><br></div><div>A possible extension of this is to allow a few special additional pseudo-charset names:</div><div>* "HTML" - the chars are to be interpreted as an array of Strings with HTML content, using the ISO-8859-1 charset. Non-ISO-8859-1  must be encoded using the &#d; format where d is the decimal number of a Unicode character.</div><div>* "XML" -  the chars are to be interpreted as a an array of Strings with XML content, using the ISO-8859-1 charset. Non-ISO-8859-1 characters must be encoded using the &#d; format where d is the decimal number of a Unicode character. </div><div><br></div><div>Thank you for considering this.</div><div><br></div><div><br></div><div>--- The Actual Pre-Proposal</div><div>Use the "charset" attribute to indicate that a multidimensional </div><div>char array should be interpreted as an array of Strings, </div><div>not an array of individual characters.</div><div>The value of "charset" also serves to specify the character set</div><div>used to encode the strings</div><div>and must be the name of one of the 8-bit encodings </div><div>(since CF chars are 8-bits) listed at</div><div><a href="http://www.iana.org/assignments/character-sets/character-sets.xhtml" target="_blank">http://www.iana.org/<wbr>assignments/character-sets/<wbr>character-sets.xhtml</a> .</div><div>Charset names are case-insensitive.</div><div>The only charsets which are recommended are "ISO-8859-1" and "UTF-8".</div><div>For backwards compatibility, if "charset" is not defined, </div><div>it remains ambiguous whether a char array should be interpreted as </div><div>holding an array of individual characters or an array of Strings.</div><div><br></div><div><br></div><div>--- An Example: Encoding three Strings: "It", "Book", and "5 &euro;".</div><div>The Unicode code point for the Euro symbol is 20AC (in hexadecimal),</div><div>which is 8364 (in decimal).</div><div>The Euro symbol is encoded in UTF-8 as 3 bytes: E2 82 AC (in hexadecimal).</div><div>So a file would store these strings in a char array as:</div><div>  dimensions</div><div>    words = 3;</div><div>    strLen = 5;</div><div>  char myWords[words][strLen] = "It[0][0][0]", "Book[0]", "5 [E2][82][AC]";</div><div>    charset = "UTF-8";</div><div><br></div><div><br></div>-- <br><div class="m_-7516289473889322886gmail_signature"><div dir="ltr">Sincerely,<br><br>Bob Simons<br>IT Specialist<br>Environmental Research Division<br>NOAA Southwest Fisheries Science Center <br>99 Pacific St., Suite 255A      (New!)<br>Monterey, CA 93940               (New!) <br>Phone: <a href="tel:(831)%20333-9878" value="+18313339878" target="_blank">(831)333-9878</a>            (New!<span style="font-size:13.3333px">)</span><div>Fax:   <a href="tel:(831)%20648-8440" value="+18316488440" target="_blank">(831)648-8440</a><br>Email: <a href="mailto:bob.simons@noaa.gov" target="_blank">bob.simons@noaa.gov</a><br><br>The contents of this message are mine personally and <br>do not necessarily reflect any position of the <br>Government or the National Oceanic and Atmospheric Administration.<br><>< <>< <>< <>< <>< <>< <>< <>< <>< <br><br></div></div></div>
</div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Sincerely,<br><br>Bob Simons<br>IT Specialist<br>Environmental Research Division<br>NOAA Southwest Fisheries Science Center <br>99 Pacific St., Suite 255A      (New!)<br>Monterey, CA 93940               (New!) <br>Phone: (831)333-9878            (New!<span style="font-size:13.3333339691162px">)</span><div>Fax:   (831)648-8440<br>Email: <a href="mailto:bob.simons@noaa.gov" target="_blank">bob.simons@noaa.gov</a><br><br>The contents of this message are mine personally and <br>do not necessarily reflect any position of the <br>Government or the National Oceanic and Atmospheric Administration.<br><>< <>< <>< <>< <>< <>< <>< <>< <>< <br><br></div></div></div>
</div></div>