public static void setDefaultCharacterSet(String code) { SpecificCharacterSet cs = code != null ? valueOf(code) : ASCII; if (!cs.containsASCII()) throw new IllegalArgumentException("Default Character Set must contain ASCII - " + code); DEFAULT = cs; }
public SpecificCharacterSet getSpecificCharacterSet() { if (cs != null) return cs; if (containsSpecificCharacterSet) cs = SpecificCharacterSet.valueOf( getStrings(null, Tag.SpecificCharacterSet, VR.CS)); else if (parent != null) return parent.getSpecificCharacterSet(); else cs = SpecificCharacterSet.getDefaultCharacterSet(); return cs; }
public static void unifyCharacterSets(Attributes... attrsList) { if (attrsList.length == 0) return; SpecificCharacterSet utf8 = SpecificCharacterSet.valueOf("ISO_IR 192"); SpecificCharacterSet commonCS = attrsList[0].getSpecificCharacterSet(); if (!commonCS.equals(utf8)) { for (int i = 1; i < attrsList.length; i++) { SpecificCharacterSet cs = attrsList[i].getSpecificCharacterSet(); if (!(cs.equals(commonCS) || cs.isASCII() && commonCS.containsASCII())) { if (commonCS.isASCII() && cs.containsASCII()) commonCS = cs; else { commonCS = utf8; break; } } } } for (Attributes attrs : attrsList) { SpecificCharacterSet cs = attrs.getSpecificCharacterSet(); if (!(cs.equals(commonCS))) { if (!cs.isASCII() || !commonCS.containsASCII()) attrs.decodeStringValuesUsingSpecificCharacterSet(); attrs.setString(Tag.SpecificCharacterSet, VR.CS, commonCS.toCodes()); } } }