/** * Packer version 3.0 (final) * Copyright 2004-2007, Dean Edwards * Web: {@link http://dean.edwards.name/} * * This software is licensed under the MIT license * Web: {@link http://www.opensource.org/licenses/mit-license} * * Ported to Java by Pablo Santiago based on C# version by Jesse Hansen, <twindagger2k @ msn.com> * Web: {@link http://jpacker.googlecode.com/} * Email: <pablo.santiago @ gmail.com> */ package com.jpacker.encoders; /** * High-Ascii (base95) encoder: [¡-ÿ] SHOULD BE USED WITH CAUTION! Not fully * tested. * * @author Pablo Santiago <pablo.santiago @ gmail.com> */ public class HighAsciiEncoder implements Encoder { private static String LOOKUP_95 = "¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"; @Override public String encode(int code) { String encoded = ""; int i = 0; do { int digit = (code / (int) Math.pow(95, i)) % 95; encoded = LOOKUP_95.charAt(digit) + encoded; code -= digit * (int) Math.pow(95, i++); } while (code > 0); return encoded; } }