How can we determine the meaning of a message from a distant civilization if we do not have a common language? This paper presents a general technique and principles for decoding interstellar messages: First, find the dimension of the message. Prime numbers may be useful in determining the proportions of messages. Next, find the symbols. This can be done considering symbol types: delimiters, values, relationships, and functions. Then, find the symbol meanings. Features that can help in determining meaning include sub-symbolic type, redundant symbols, expression consistency, physics ratios, and physics expression patterns. Concepts in this paper can be used when a message from another civilization is received, or they can be used to create messages, which can teach communication theory concepts.