001 package com.thaiopensource.util; 002 003 public abstract class Utf16 { 004 // 110110XX XXXXXX 110111XX XXXXXX 005 static public boolean isSurrogate(char c) { 006 return (c & 0xF800) == 0xD800; 007 } 008 static public boolean isSurrogate1(char c) { 009 return (c & 0xFC00) == 0xD800; 010 } 011 static public boolean isSurrogate2(char c) { 012 return (c & 0xFC00) == 0xDC00; 013 } 014 static public int scalarValue(char c1, char c2) { 015 return (((c1 & 0x3FF) << 10) | (c2 & 0x3FF)) + 0x10000; 016 } 017 static public char surrogate1(int c) { 018 return (char)(((c - 0x10000) >> 10) | 0xD800); 019 } 020 static public char surrogate2(int c) { 021 return (char)(((c - 0x10000) & 0x3FF) | 0xDC00); 022 } 023 } 024