Another approach to consider is to specify “list item” rather than “item”. You didn’t give us an example of how you’re using the msg value after you create it, but an important thing to keep in mind is that the word “item” can refer to either a list item or a text item depending on whether the value you’re referring to is a list or not.
So there are actually two other possibilities here. The first is to explicitly request a list item:
put "Item 1, Item 2" into msg
put item 1 of msg -- shows "Item 1" (assumes text item)
put list item 1 of msg -- shows "Item 1, Item 2"
The second way to do this is to force msg to be a list in the first place, rather than just text (this is also what the “insert” command in the previous example achieves):
put ("Item 1, Item 2" , ) into msg
put item 1 of msg -- shows "Item 1, Item 2" (assumes list item)
[Note the extra comma inside the parentheses on the first line here. The comma is needed to make it a list rather than merely an expression enclosed in parentheses.]
Making a list here to begin with may be the preferable way to go, if what you want is a list. Once you have a list, the word “item” will refer to list items, and of course an item in a list can contain any characters you want.