V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hjc4869
V2EX  ›  问与答

请问 C#有无办法判断一个字符串(System.String)中是否存在乱码?

  •  
  •   hjc4869 · 2014-10-21 23:29:59 +08:00 · 8586 次点击
    这是一个创建于 3704 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近做一个Windows/Windows Phone播放器的项目,涉及到读取mp3元数据/媒体信息的问题,由于国内流通着大量(盗版的)不符合标准的mp3(使用gb2312编码的tag),使用ffmpeg或者Taglib读取后这些文件都是乱码,使用WP自带的MediaElement等读取也是乱码,然而在Windows 8的项目上,如果将系统调成中文,这些非标准的mp3却能被正确识别。

    因此现在WP上的项目就存在一个判断字符串里是否存在乱码的问题,如果有乱码就切到gb2312或者其他Encoding进行解码。不过Google了一下似乎也没有什么有效的方法能够判断?

    请问大家有无这方面的经验?

    5 条回复    2014-10-22 23:01:26 +08:00
    quericy
        1
    quericy  
       2014-10-21 23:52:54 +08:00   ❤️ 1
    看得不是非常明白~~之所以会乱码是读取编码格式不对的原因吗?
    判断存在乱码其实只要判断编码方式就好了吧~

    谷歌了一下:http://blog.csdn.net/yenange/article/details/7209973

    PS:头像好熟悉,貌似在哪见过你?_(:з」∠)__
    dong3580
        2
    dong3580  
       2014-10-22 00:01:07 +08:00 via Android
    看得不是很明白,贴一段乱码和正常的看看
    whywhywhy
        3
    whywhywhy  
       2014-10-22 15:23:18 +08:00
    @quericy 我也觉得好熟悉,似乎是从火星来地球的路上看到过……

    难道你也是火星来的吗……
    hjc4869
        4
    hjc4869  
    OP
       2014-10-22 22:17:49 +08:00
    @quericy 是的,本质上就是判断编码,mp3的tag默认的全是当UTF-8读取,所以如果编码是GB的话就会出现乱码。
    quericy
        5
    quericy  
       2014-10-22 23:01:26 +08:00
    @whywhywhy 哎呦诶,这都被你发现了~在火星打游戏ping太高了我就跑地球来了_(:з」∠)__

    @hjc4869 那这样应该就没错了.b( ̄▽ ̄)d
    原来是風の音啊~~幸会幸会~~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:22 · PVG 22:22 · LAX 06:22 · JFK 09:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.