Tag: 编码

process.standardInput编码问题

我对process.standartInput编码的编码有问题。 我在我的Windows窗体应用程序中使用了一些进程,但输入应该是UTF-8。 Process.StandardInput.Encoding是只读的,因此我无法将其设置为UTF-8,并且它获得了Windows默认编码,这会恶化UTF-8中的原生字符。 程序中使用了2个进程,一个将输出写入文件和其他读取。 因为我可以将输出编码设置为UTF-8,这部分工作正常,但回读是我遇到问题的部分。 我将包括我使用该过程的部分。 ProcessStartInfo info = new ProcessStartInfo(“mysql”); info.RedirectStandardInput = true; info.RedirectStandardOutput = false; info.Arguments = mysqldumpstring; info.UseShellExecute = false; info.CreateNoWindow = true; Process p1 = new Process(); p1.StartInfo = info; p1.Start(); string res = file.ReadToEnd(); file.Close(); MessageBox.Show(p1.StandardInput.Encoding.EncodingName); //= where encoding should be Encoding.UTF8; p1.StandardInput.WriteLine(res); p1.Close();

C#中的实时wmvvideo编码

如何动态编码video并通过网络从C#发送? 找不到合适的图书馆。 我需要在WMV中进行编码,并且不介意实际编码是否在C ++中进行,只要该库具有可用的.NET程序集即可。 谢谢

日本电子邮件主题编码

显然,编码日语电子邮件有点挑战性,我正在慢慢发现自己。 如果有任何专家(即使是那些经验有限的专家),我可以请一些指导如何做,如何测试以及如何validation它? 请记住,我从未踏足日本附近的任何地方,只是我正在开发的产品在其他地方使用。 到目前为止我知道的是什么(我认为)如下: – 日语电子邮件应使用ISO-2022-JP,日本JIS代码页50220或可能的SHIFT_JIS代码页932进行编码 – 电子邮件传输编码应设置为Base64用于纯文本,7Bit用于Html – 电子邮件主题应单独编码,以“=?ISO-2022-JP?B?”开头。 (不知道这是什么意思)。 我试过用这个主题编码 “=?ISO-2022-JP?B?” + Convert.ToBase64String(Encoding.Unicode.GetBytes(subject)) 它基本上给出了预期的编码字符串,但它不会在电子邮件程序中显示为任何日文文本 – 我已经在Outlook 2003,Outlook Express和GMail中进行了测试 任何帮助将不胜感激 好的,所以发布一个简短的更新,由于这两个有用的答案,我已经设法得到正确的格式和编码。 现在,Outlook提供了类似于正确主题的东西: =?iso-2022-jp?B?6 Japanese test に各々の視点で語ってもらった。 6相当の防水?= 但是,Outlook Express中的完全相同的电子邮件给出了这样的主题: =?iso-2022-jp?B?6 Japanese test 縺ォ蜷・・・隕也せ縺ァ隱槭▲縺ヲ繧ゅi縺」縺溘・ 6逶ク蠖薙・髦イ豌エ?= 此外,在Outlook Express的收件箱视图中查看时,电子邮件主题更加奇怪,如下所示: =?iso-2022-jp?B?6 Japanese test ??????????????? 6???????= Gmail似乎与Outlook的工作方式类似,看起来是正确的。 我无法理解这一个。

如何在.NET中猜测没有BOM的文件的编码?

我在.NET中使用StreamReader类,如下所示: using( StreamReader reader = new StreamReader( “c:\somefile.html”, true ) { string filetext = reader.ReadToEnd(); } 当文件具有BOM时,这可以正常工作。 我遇到了没有BOM的文件的麻烦..基本上我得到了胡言乱语。 当我指定Encoding.Unicode它工作正常,例如: using( StreamReader reader = new StreamReader( “c:\somefile.html”, Encoding.Unicode, false ) { string filetext = reader.ReadToEnd(); } 所以,我需要将文件内容转换为字符串。 那么人们通常如何处理这个呢? 我知道没有解决方案可以在100%的时间内工作,但我想提高我的几率。显然有一些试图猜测的软件(例如,记事本,浏览器等)。 .NET框架中是否有一种方法可以猜测我? 有没有人有他们想分享的代码? 更多背景:这个问题和我的问题差不多,但我在.NET领域。 这个问题让我进入了一个列出各种编码检测库的博客,但没有一个在.NET中

“.NET框架默认使用UTF-16编码标准”是什么意思?

我的学习指南(70-536考试)在文章和编码章节中说了两次,就在IO章之后。 到目前为止,所有示例都与使用FileStream和StreamWriter进行简单文件访问有关。 它也说“如果你不知道在创建文件时使用什么编码,请不要指定一个,.NET将使用UTF16”和“使用Stream构造函数重载指定不同的编码”。 别担心实际的重载在StreamWriter类上,但是嘿,无论如何。 我现在正在reflection器中查看StreamWriter,我确信我可以看到默认是默认的UTF8NoBOM。 但这些都没有在勘误表中列出。 这是一本旧书(对两个版本的错误进行了调整)所以如果错了,我会认为有人已经接受了…… 让我想到也许我不理解它。 那么…..任何想法,它在说什么? 其他一些有默认的地方? 这让我很困惑。

将图像转换为数据:image / png; base64用于网页disaplay

如果访问jQuery-File-Upload Demo页面并尝试上传图像,然后查看JSON响应,他会注意到以下格式返回上传图像的预览: “thumbnail_url”:”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAI… 据我了解,图像正在转换为字符串并发送回客户端。 我怎样才能在C#中为相同的演示提供ASP.NET后端?

c#编码中的一个奇怪的事情

我将byte array转换为string ,并将此string转换为byte array 。 这两个字节数组是不同的。 如下: byte[] tmp = Encoding.ASCII.GetBytes(Encoding.ASCII.GetString(b)); 假设b是一个字节数组。 b [0] = 3,b [1] = 188,b [2] = 2 //十进制 结果: tmp [0] = 3,tmp [1] = 63,tmp [2] = 2 这就是我的问题,它有什么问题?

OLEDB自定义编码

我的目标 我需要以客户端指定的特定格式创建.dbf文件。 格式为dBase III .dbf,带有kamenicky编码,使用Integer,各种长度的字符和Double列类型。 问题 我几乎所有工作都在工作,只有一个障碍:尽管编写了一个特定的转换表来切换与kamenicky编码兼容的原始字符,但darn编码拒绝工作。 这意味着输出文件以例如对于char的HEX值FF结束,该char在导入的字符串中被指定为A0的hex值。 如果你打算(-1)这个问题,我会非常感谢你为什么在评论中这样做 – 即使是“你不能充分理解这个问题”也会有很大的帮助,因为我知道在哪里继续我的研究(如在那种情况下非常基础) 我有点,有点解决问题(见评论),但解决方案有缺陷,实际上根本没有回答给定的问题。 题 我如何说服Jet.OLEDB提供商不要弄乱编码? 我试过了什么 使用foxpro提供程序,它实际工作正常,除了我的客户端软件无法读取生成的.dbf文件的细节。 不使用OleDbParameter插入数据(因此输入无法正确转义)无济于事 通过CharacterSet = xxx和一些其他连接字符串修改设置几个不同的编码,我现在不记得,每次A0的输出产生FF。 我在这里找到了一个AutoTranslate属性,但据我所知它只适用于SQL连接,因为Jet.OLEDB一直给我一个ISAM错误。 我尝试过全球化的设置 ,并没有多大帮助。 一些代码 连接字符串: “Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0};Extended Properties=\”dBase III;\””; 然后使用OleDbCommand插入数据,单个单元格填充OleDbParameter类并构造插入字符串。 可能没用,但这是代码: private void insertRows(T[] data, OleDbConnection connection) { using (OleDbCommand command = connection.CreateCommand()) { for (int i = 0; i < data.Count(); i++) { […]

将StringEscapeHandling.EscapeNonAscii与Json.NET一起使用

最新版本的Json.NET(4.5.11)包含StringEscapeHandling.EscapeNonAscii,它可以转义所有非ASCII字符。 但是,我无法弄清楚将其作为参数传递到何处。 如果我尝试: JsonConvert.SerializeObject(myObj, Formatting.Indented, new JsonSerializerSettings { StringEscapeHandling = StringEscapeHandling.EscapeNonAscii}); 然后我得到编译错误: ‘Newtonsoft.Json.JsonSerializerSettings’ does not contain a definition for ‘StringEscapeHandling’

是否可以通过正确的编码从Web响应中获取数据

using (WebResponse response = webRequest.GetResponse()) { using (var reader = new StreamReader(response.GetResponseStream())) { string tmpStreamData = string.Empty; while (!reader.EndOfStream) { while (reader.Peek() > -1) { tmpStreamData += (char)reader.Read(); } } MessageBox.Show(tmpStreamData); } } 有时我在“tmpStreamData”中得到 符号。 是否可以避免这种情况并以可读格式获取数据?