首页 文章

外国文化XML文本解析

提问于
浏览
0

我不久前发布了一款Windows手机应用程序 . 从那时起,BugSense报告了一个导致国外崩溃的问题:

System.ArgumentException - 此SpriteFont中没有字符'İ'(0x0130) . 如果适用,请调整字体的开始和结束CharacterRegions以包含此字符 . 参数名称:字符

这是堆栈跟踪:

Microsoft.Xna.Framework.Graphics.SpriteFont.GetIndexForCharacter(Char字符),位于Microsoft.Xna.Framework.Graphics.SpriteFont.MeasureString(String text)的Microsoft.Xna.Framework.Graphics.SpriteFont.InternalMeasure(StringProxy&text)位于GlobalEngine.Visual.TextBase.set_FormattedText(String value)的GlobalEngine.Visual.TextLabel.set_Text(字符串值)的System.EventHandler.Invoke(Object sender,EventArgs e)中的GlobalEngine.Visual.TextBase.CalculateSpriteOrigin(Object sender,EventArgs e) )FourWordsLibrary.GameUtils.Letter..ctor(Char letter,AssetManager assetManager,SpriteBatch spriteBatch,Single width)在FourWordsLibrary.GameUtils.Word..ctor(String orderedWord,String shuffledWord,AssetManager assetManager,SpriteBatch spriteBatch,InputManager inputManager,Single letterWidth) )在FourWordsLibrary.Controllers.Ga的FourWordsLibrary.GameUtils.Word..ctor(String orderedWord,String shuffledWord,AssetManager assetManager,SpriteBatch spriteBatch,InputManager inputManager)在FourWordsLibrary的GlobalEngine.Base.StateManager1.SetState(T状态)的GlobalEngine.Base.StateManager1.SetState(T状态,对象obj)的FourWordsLibrary.Controllers.GameControl.StatePlay.Activate(Object obj)中的meControl.StatePlay.SetupNextLevel() FourConrations.Screens.GameScreen..ctor(Engine engine,Object obj)中的.Controllers.GameControl.SetPack(PackManager packManager)

我的应用程序是文字游戏,我从XML文件中检索每个级别的单词 . 所以我怀疑当XmlReader正在读取文件时,它使用外来文化这样做会导致拉丁字母被检索,然后应用程序在尝试使用严格的英文精灵字体绘制字母时崩溃 . 我试图寻找一种方法来指示XmlReader使用InvariantCulture进行读取,类似于.toString()方法中的方法,但没有找到任何方法 . 任何想法如何解决这个问题?

1 回答

  • 0

    对我来说似乎更多的输入XML文件问题 . 检查它是否包含此“无效”字符('İ'(0x0130))并在必要时进行更正 . 如果您使用应用程序/游戏编写输入XML,请检查您是否使用InvariantCulture编写内容 .

    BR,

相关问题