code: private static String toFullWidth(String ascii) {
      int numChars = ascii.length();
      StringBuilder sb = new StringBuilder(ascii);
      for (int i = 0; i < numChars; ++i) {
        char ch = ascii.charAt(i);
        if (ch < 0x80) {
          sb.setCharAt(i, (char) (ch + 0xff00 - 0x20));
        }
      }
      return sb.toString();
    }
docs: Convert an ASCII string to full-width. Full-width characters are in Unicode page U+FFxx and are
  used to allow ASCII characters to be embedded in written Chinese without breaking alignment --
  so a sinograph which occupies two columns can line up properly with a Latin letter or symbol
  which normally occupies only one column.
  
  <p>See <a
  href="http://en.wikipedia.org/wiki/Duplicate_characters_in_Unicode#CJK_fullwidth_forms">CJK
  fullwidth forms</a> and <a href="unicode.org/charts/PDF/UFF00.pdf">unicode.org</a>.