I do not have a mapping between characters and images, but I was able to figure out where the images are stored and its contents. The images are stored in /system/framework/framework-res.apk.
Having pulled this file from ICS emulator, I extracted and found 16 files for emoticons grouped based on DPI.
The following are the files and its preview for ldpi.
and the hdpi:
I could not find the map between the string that we type and its corresponding image. There are many Google search results that will help to replace these image files and add some more stuff as well. The added emoticons will make sense only if both sender and receiver has this modification, else it will be seen just as a text only.
I know this does not answer your question, but while trying to find out one I stumbled on this information which could be useful for some one or some one knowledgeable enough can take it from here.
Mapping
Roxan shows us that Android's default keyboard has 16 emotions when you long press the ":-)" key. Let's see if we can figure out how the map to the symbols:
:-) emo_im_happy
:-( emo_im_sad
:-D emo_im_laughing
:'( emo_im_cyring
:-/ emo_im_undecided
:-[ emo_im_embarrassed
O:-) emo_im_angel
:-! emo_im_foot_in_mouth
:-$ emo_im_money_mouth
B-) emo_im_cool
:-* emo_im_kissing
:O emo_im_yelling
=-O emo_im_suprised
:-P emo_im_toungue_sticking_out
;-) emo_im_winking
:-X emo_im_lips_are_sealed
o.O emo_im_wtf
You can edit the answer if you found an error or a new mapping