𝔼𝕊𝕄𝕚𝕟 2, 18 chars / 34 bytes
ïē/\w⌿,↪(ḏ-`ᶍ⦃$}”ⓧ
#𝔼𝕊𝕄𝕚𝕟 2, 18 chars / 34 bytes ïē/\w⌿,↪(ḏ-`ᶍ⦃$}”ⓧ [Try it here (Firefox only).][1]Try it here (Firefox only).
Using a version created after the challenge.
#Explanation
ïē/\w⌿,↪(ḏ-ᶍ⦃$}”ⓧ // implicit: ï=input, ḏ=15 ïē/\w⌿, // replace all alphanumeric chars in ï with: ↪(ḏ-
ᶍ⦃$}”ⓧ // (15 - char's decimal form) converted to hex
// implicit output
#Non-competitive solution, 15 chars / 29 bytes
ïē/\w⌿,↪(ḏ-`ᶍ⦃$}”ⓧ
Uses
Explanation
ïē/\w⌿,↪(ḏ-`ᶍ⦃$}”ⓧ // implicit: ï=input, ḏ=15
ïē/\w⌿, // replace all alphanumeric chars in ï with:
↪(ḏ-`ᶍ⦃$}”ⓧ // (15 - char's decimal form) converted to hex
// implicit output
Non-competitive solution, 15 chars / 29 bytes
ïē/\w⌿,↪(ḏ-`ᶍ⦃$}”ⓧ
Uses transliteration. [1]: http://molarmanful.github.io/ESMin/interpreter2.html?eval=false&input=%23ffffff&code=%C3%AF%C4%93%2F\w%E2%8C%BF%2C%E2%86%AA%28%E1%B8%8F-%60%E1%B6%8D%E2%A6%83%24}%E2%80%9D%E2%93%A7