Unicode support for user data in EDS
Version 8.7 brings full support for Unicode to all user data. This means users can enter non-Latin text in DWGs, DBFs, SQL databases, Edit views and Dialogs, and EDS will correctly and reliably store it, interpret it, and process it, without having to configure language or region settings in the operating system.
However, users (particularly those using non-Latin characters) should be aware of the following:
Fixed length fields
Many aspects of EDS have restrictions on the maximum number of "characters" that can be used for certain values. For example, restrictions on tagname length, or width of a DBF column. These values are stored internally as bytes, and thus the restriction is actually a number of bytes, not "characters".
A Unicode code-point may require 1-4 bytes of storage in the UTF-8 encoding scheme (used by EDS internally):
- 1 byte: ASCII/Basic Latin (eg A-Z, a-z, 0-9, common punctuation) - characters present on an "English" keyboard
- 2 bytes: Extended Latin, accents, Greek, Cyrillic, Hebrew, Arabic, ...
- 3 bytes: CJK/Asian
- 4 bytes: historic and other scripts, symbols
Thus the number of "characters" usable will depend on how many bytes each character requires. In most cases EDS will silently truncate text that exceeds the allowable number of bytes.
EDS functions that ignore the case of text will now only ignore the case for certain alphabets, currently:
All other alphabets do not have mappings between different cases, and users may need to manually correct case in order for text/names etc to be considered the same, or contact Scada Systems to request additional development.
Manual editing of INI files should be done using a UTF-8 aware text editor (such as Notepad++).
SQL Server table structure
IM/CS will prompt to upgrade existing database table structures to allow Unicode text to be stored. This is a lossless, one-off operation, and may take a bit of time on larger databases. New databases will use Unicode table structures by default.
There should be no adverse affect on any 3rd-party software interacting with the database.