public boolean equals( Object obj )
	{
		if( obj instanceof Unicodestring )
		{
			// compare Unicode strings at byte level rather than just string value
			// if(val.equals(obj.toString()))return true;
			if( westernencoding )
			{
				if( java.util.Arrays.equals( getWesternBytes(), ((Unicodestring) obj).getWesternBytes() ) )
				{
					return true;
				}
			}
			else
			{
				if( java.util.Arrays.equals( getEasternBytes(), ((Unicodestring) obj).getEasternBytes() ) )
				{
					return true;
				}
			}
		}
		else if( obj instanceof String )
		{
			String val = toString();
			if( val.equals( obj ) )
			{
				return true;
			}
		}
		return false;
	}